Loading capif_backend/backoffice_service/controllers/default_controller.py +26 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,15 @@ def get_num_ixnvokers(): def get_providers(): return operations.get_providers() # GET /resources/providers?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/providersPages", methods=["GET"]) @jwt_required() def get_providersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_providers_pages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/numProviders", methods=["GET"]) @jwt_required() Loading Loading @@ -91,6 +100,15 @@ def get_capif_users(): return jsonify(message="Invalid id", object=None), 400 return operations.get_users() # GET /resources/users?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/usersPagesRetrieve", methods=["GET"]) @jwt_required() def get_users_pages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.retrieve_users_pages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/numUsers", methods=["GET"]) @jwt_required() Loading Loading @@ -153,6 +171,14 @@ def delete_user(username, password): def get_apis(): return operations.get_apis() @cross_origin() @backoffice_routes.route("/apisPages", methods=["GET"]) @jwt_required() def get_apis_pages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_apis_pages(page, page_size) @cross_origin() @backoffice_routes.route("/apis/num", methods=["GET"]) @jwt_required() Loading capif_backend/backoffice_service/core/operations.py +144 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,51 @@ class Operations: return json_providers def get_providers_pages(self, page, page_size): try: # Obtener el total de providers total_providers = self.db.get_col_by_name(self.db.providers).count_documents({}) # Calcular el índice de inicio y fin para la paginación start_index = (page - 1) * page_size end_index = start_index + page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los providers para la página actual providers_cursor = self.db.get_col_by_name(self.db.providers).find({}, {"_id": 0, "fail_reason": 0, "reg_sec": 0, "supp_feat": 0, "api_prov_funcs[0].reg_info": 0, "api_prov_funcs[1].reg_info": 0, "api_prov_funcs[2].reg_info": 0 }).skip(start_index).limit(page_size) providers = list(providers_cursor) users = self.retrieve_users() json_providers = [] for provider in providers: provider_aux = copy.deepcopy(provider) for user in users: if provider["api_prov_dom_id"] in user["list_providers"]: provider_aux["username"] = user["username"] json_providers.append(provider_aux) json_providers = self.rearrange_api_prov_funcs(json_providers) # Calcular el número total de páginas total_pages = (total_providers + page_size - 1) // page_size long_data = len(json_providers) # Construir el objeto de respuesta response = { "data": json_providers, "long": long_data, "total": total_providers, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving provider list: ", e def rearrange_api_prov_funcs(self, providers): for provider in providers: # Inicializamos una lista para almacenar los elementos reordenados Loading Loading @@ -243,6 +288,75 @@ class Operations: return json_users def retrieve_users_pages(self, page, page_size): try: # Obtener el total de users total_users = self.db.get_col_by_name_register(self.db.user).count_documents({}) # Calcular el índice de inicio para la paginación start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los users para la página actual users = self.db.get_col_by_name_register(self.db.user).find({}, {"_id": 0}).skip(start_index).limit(page_size) json_users = [] for user in users: json_users.append(user) # Calcular el número total de páginas total_pages =(total_users + page_size - 1) // page_size # Construir el objeto de respuesta response = { "data": json_users, "total": total_users, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving user list: ", e def get_users_pages(self, page, page_size): try: # Obtener el total de users total_users = self.db.get_col_by_name_register(self.db.user).count_documents({}) # Calcular el índice de inicio para la paginación start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los users para la página actual users_cursor = self.db.get_col_by_name_register(self.db.user).find({}, {"_id": 0}).skip(start_index).limit(page_size) users = list(users_cursor) json_users = [] for user in users_cursor: json_users.append(user) # Calcular el número total de páginas total_pages = (total_pages + page_size - 1) // page_size # Construir el objeto de respuesta response = { "data": json_users, "total": total_users, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving user list: ", e def delete_invoker(self, invoker_id): try: Loading Loading @@ -354,6 +468,36 @@ class Operations: except Exception as e: return "Error when retrieving apis list: ", e def get_apis_pages(self, page, page_size): try: mycol = self.db.get_col_by_name(self.db.services) total_apis = mycol.count_documents({}) start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 apis = mycol.find({}, {"_id": 0, "data_format": 0, "api_supp_feats": 0, "ccf_id": 0, "pub_api_path": 0, "service_api_category": 0, "shareable_info": 0, "supported_features": 0}).skip(start_index).limit(page_size) json_apis = [] for api in apis: json_apis.append(api) total_pages = (total_apis + page_size - 1) // page_size response = { "data": json_apis, "total": total_apis, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving apis list: ", e def get_apis_cont(self): mycol = self.db.get_col_by_name(self.db.services) apis = mycol.find({}, {"_id": 0}) Loading Loading
capif_backend/backoffice_service/controllers/default_controller.py +26 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,15 @@ def get_num_ixnvokers(): def get_providers(): return operations.get_providers() # GET /resources/providers?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/providersPages", methods=["GET"]) @jwt_required() def get_providersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_providers_pages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/numProviders", methods=["GET"]) @jwt_required() Loading Loading @@ -91,6 +100,15 @@ def get_capif_users(): return jsonify(message="Invalid id", object=None), 400 return operations.get_users() # GET /resources/users?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/usersPagesRetrieve", methods=["GET"]) @jwt_required() def get_users_pages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.retrieve_users_pages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/numUsers", methods=["GET"]) @jwt_required() Loading Loading @@ -153,6 +171,14 @@ def delete_user(username, password): def get_apis(): return operations.get_apis() @cross_origin() @backoffice_routes.route("/apisPages", methods=["GET"]) @jwt_required() def get_apis_pages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_apis_pages(page, page_size) @cross_origin() @backoffice_routes.route("/apis/num", methods=["GET"]) @jwt_required() Loading
capif_backend/backoffice_service/core/operations.py +144 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,51 @@ class Operations: return json_providers def get_providers_pages(self, page, page_size): try: # Obtener el total de providers total_providers = self.db.get_col_by_name(self.db.providers).count_documents({}) # Calcular el índice de inicio y fin para la paginación start_index = (page - 1) * page_size end_index = start_index + page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los providers para la página actual providers_cursor = self.db.get_col_by_name(self.db.providers).find({}, {"_id": 0, "fail_reason": 0, "reg_sec": 0, "supp_feat": 0, "api_prov_funcs[0].reg_info": 0, "api_prov_funcs[1].reg_info": 0, "api_prov_funcs[2].reg_info": 0 }).skip(start_index).limit(page_size) providers = list(providers_cursor) users = self.retrieve_users() json_providers = [] for provider in providers: provider_aux = copy.deepcopy(provider) for user in users: if provider["api_prov_dom_id"] in user["list_providers"]: provider_aux["username"] = user["username"] json_providers.append(provider_aux) json_providers = self.rearrange_api_prov_funcs(json_providers) # Calcular el número total de páginas total_pages = (total_providers + page_size - 1) // page_size long_data = len(json_providers) # Construir el objeto de respuesta response = { "data": json_providers, "long": long_data, "total": total_providers, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving provider list: ", e def rearrange_api_prov_funcs(self, providers): for provider in providers: # Inicializamos una lista para almacenar los elementos reordenados Loading Loading @@ -243,6 +288,75 @@ class Operations: return json_users def retrieve_users_pages(self, page, page_size): try: # Obtener el total de users total_users = self.db.get_col_by_name_register(self.db.user).count_documents({}) # Calcular el índice de inicio para la paginación start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los users para la página actual users = self.db.get_col_by_name_register(self.db.user).find({}, {"_id": 0}).skip(start_index).limit(page_size) json_users = [] for user in users: json_users.append(user) # Calcular el número total de páginas total_pages =(total_users + page_size - 1) // page_size # Construir el objeto de respuesta response = { "data": json_users, "total": total_users, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving user list: ", e def get_users_pages(self, page, page_size): try: # Obtener el total de users total_users = self.db.get_col_by_name_register(self.db.user).count_documents({}) # Calcular el índice de inicio para la paginación start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 # Obtener los users para la página actual users_cursor = self.db.get_col_by_name_register(self.db.user).find({}, {"_id": 0}).skip(start_index).limit(page_size) users = list(users_cursor) json_users = [] for user in users_cursor: json_users.append(user) # Calcular el número total de páginas total_pages = (total_pages + page_size - 1) // page_size # Construir el objeto de respuesta response = { "data": json_users, "total": total_users, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving user list: ", e def delete_invoker(self, invoker_id): try: Loading Loading @@ -354,6 +468,36 @@ class Operations: except Exception as e: return "Error when retrieving apis list: ", e def get_apis_pages(self, page, page_size): try: mycol = self.db.get_col_by_name(self.db.services) total_apis = mycol.count_documents({}) start_index = (page - 1) * page_size # Validar los parámetros if page <= 0 or page_size <= 0: return jsonify({"error": "Los parámetros 'page' y 'page_size' deben ser valores positivos."}), 400 apis = mycol.find({}, {"_id": 0, "data_format": 0, "api_supp_feats": 0, "ccf_id": 0, "pub_api_path": 0, "service_api_category": 0, "shareable_info": 0, "supported_features": 0}).skip(start_index).limit(page_size) json_apis = [] for api in apis: json_apis.append(api) total_pages = (total_apis + page_size - 1) // page_size response = { "data": json_apis, "total": total_apis, "totalPages": total_pages } return jsonify(response), 200 except Exception as e: return "Error when retrieving apis list: ", e def get_apis_cont(self): mycol = self.db.get_col_by_name(self.db.services) apis = mycol.find({}, {"_id": 0}) Loading