Loading capif_backend/backoffice_service/__main__.py +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ import json import requests import os from .controllers.default_controller import backoffice_routes from .controllers.invokers_controller import invokers_routes from .controllers.providers_controller import providers_routes from .controllers.users_controller import users_routes from .controllers.apis_controller import apis_routes from .controllers.login import access_routes from flask_cors import CORS Loading @@ -18,6 +22,10 @@ CORS(app) # habilita CORS para todas las rutas en la aplicación # other option modify URL -> app.register_blueprint(backoffice_routes, url_prefix="/resources") app.register_blueprint(backoffice_routes) app.register_blueprint(access_routes) app.register_blueprint(invokers_routes, url_prefix="/invokers") app.register_blueprint(providers_routes, url_prefix="/providers") app.register_blueprint(apis_routes, url_prefix="/apis") app.register_blueprint(users_routes, url_prefix="/users") @app.route("/options", methods=["OPTIONS"]) Loading capif_backend/backoffice_service/controllers/apis_controller.py 0 → 100644 +80 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes apis_routes = Blueprint("apis_routes", __name__) operations = Operations() # create operations object -> operations.py # GET apis with date order and pagination @cross_origin() @apis_routes.route("/", methods=["GET"]) @jwt_required() def get_apis_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_apis_pages_order(page, page_size, order) # GET a JSON with all apis @cross_origin() @apis_routes.route("/apisTotal", methods=["GET"]) @jwt_required() def get_apis(): return operations.get_apis() # GET apis with pagination @cross_origin() @apis_routes.route("/pages", 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) # GET the number of apis @cross_origin() @apis_routes.route("/num", methods=["GET"]) @jwt_required() def get_num_apis(): return operations.get_num_apis() # SEARCH apis @cross_origin() @apis_routes.route("/search", methods=["GET"]) @jwt_required() def search_apis(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_apis(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # DELETE multiple apis @apis_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_apis_route(): try: apis = request.json.get('api', []) if not apis: return jsonify(message="No apis provided for delete."), 400 responses = operations.delete_providers_services(apis) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting apis", error=str(e)), 500 No newline at end of file capif_backend/backoffice_service/controllers/default_controller.py +0 −338 Original line number Diff line number Diff line Loading @@ -13,108 +13,6 @@ GRAFANA_URL = 'http://grafana.mon.svc.cluster.local:3000' backoffice_routes = Blueprint("backoffice_routes", __name__) operations = Operations() # create operations object -> operations.py @cross_origin() @backoffice_routes.route("/resources/invokers", methods=["GET"]) @jwt_required() def get_invokers(): return operations.get_invokers() # GET /resources/invokers?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/invokersPages", methods=["GET"]) @jwt_required() def get_invokersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_invokersPages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/invokersPagesOrder", methods=["GET"]) @jwt_required() def get_invokers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_invokers_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/invokers/search", methods=["GET"]) @jwt_required() def search_invokers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_invokers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numInvokers", methods=["GET"]) @jwt_required() def get_num_ixnvokers(): return operations.get_num_invokers() @cross_origin() @backoffice_routes.route("/resources/providers", methods=["GET"]) @jwt_required() 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/providersPagesOrder", methods=["GET"]) @jwt_required() def get_providers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_providers_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/providers/search", methods=["GET"]) @jwt_required() def search_providers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_providers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numProviders", methods=["GET"]) @jwt_required() def get_num_providers(): return operations.get_num_providers() @cross_origin() @backoffice_routes.route("/resources/invokers/security/<invoker_id>", methods=["GET"]) @jwt_required() def get_invoker_security_context(invoker_id): print("ESTOY EN BACKOFFICE ROUTES INVOKER ID: ", invoker_id) if invoker_id == "null": return jsonify(message="Invalid invoker_id", security_contexts=None), 400 return operations.get_invoker_security_context(invoker_id) @cross_origin() Loading @@ -125,242 +23,6 @@ def get_events(id): return jsonify(message="Invalid events id", object=None), 400 return operations.get_events(id) @cross_origin() @backoffice_routes.route("/resources/providers/services/<id>", methods=["GET"]) @jwt_required() def get_provider_services(id): if id == "null": return jsonify(message="Invalid apf_id", object=None), 400 return operations.get_provider_services(id) @cross_origin() @backoffice_routes.route("/resources/users/<name>", methods=["GET"]) @jwt_required() def get_capif_user(name): if id == "null": return jsonify(message="Invalid name", object=None), 400 return operations.get_user(name) @cross_origin() @backoffice_routes.route("/users", methods=["GET"]) @jwt_required() def get_capif_users(): if id == "null": 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/usersPagesOrder", methods=["GET"]) @jwt_required() def get_users_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.retrieve_users_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/users/search", methods=["GET"]) @jwt_required() def search_users(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_users(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numUsers", methods=["GET"]) @jwt_required() def get_capif_num_users(): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.get_num_user() @cross_origin() @backoffice_routes.route("/invokers/<id>", methods=["DELETE"]) @jwt_required() def delete_invoker(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_invoker(id) @backoffice_routes.route("/invokers10", methods=["DELETE"]) @jwt_required() def delete_invokers_route(): try: invoker_ids = request.json.get('invoker_ids', []) if not invoker_ids: return jsonify(message="No invoker IDs provided"), 400 responses = operations.delete_invokers(invoker_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting invokers", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/providers/<id>", methods=["DELETE"]) @jwt_required() def delete_provider(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_provider(id) @backoffice_routes.route("/providers10", methods=["DELETE"]) @jwt_required() def delete_providers_route(): try: provider_ids = request.json.get('provider_ids', []) if not provider_ids: return jsonify(message="No provider IDs provided"), 400 responses = operations.delete_providers(provider_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting providers", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/invokers/security/<invoker_id>/<aef_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_security_context(invoker_id, aef_id, api_id): if invoker_id == "null" or aef_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_security_context(invoker_id, aef_id, api_id) @cross_origin() @backoffice_routes.route("/providers/services/<apf_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_provider_service(apf_id, api_id): if apf_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_provider_service(apf_id, api_id) @backoffice_routes.route("/apis10", methods=["DELETE"]) @jwt_required() def delete_apis_route(): try: apis = request.json.get('api', []) if not apis: return jsonify(message="No apis provided for delete."), 400 responses = operations.delete_providers_services(apis) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting apis", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/user/<username>/<password>", methods=["DELETE"]) @jwt_required() def delete_user(username, password): if username == "null" or password == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_user(username, password) @backoffice_routes.route("/users10", methods=["DELETE"]) @jwt_required() def delete_users_route(): try: users = request.json.get('users', []) if not users: return jsonify(message="No users provided for delete."), 400 responses = operations.delete_users(users) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting users", error=str(e)), 500 @backoffice_routes.route("/user", methods=["POST"]) @jwt_required() def create_user_route(): try: user_data = request.json # Verificar que los datos necesarios están presentes if not all(key in user_data for key in ['username', 'password', 'cn', 'role', 'description']): return jsonify(message="Missing data for user creation."), 400 response = operations.create_user(user_data) return jsonify(response), 201 except Exception as e: return jsonify(message="Error creating user", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/apis", methods=["GET"]) @jwt_required() 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("/apisPagesOrder", methods=["GET"]) @jwt_required() def get_apis_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_apis_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/apis/num", methods=["GET"]) @jwt_required() def get_num_apis(): return operations.get_num_apis() @cross_origin() @backoffice_routes.route("/apis/search", methods=["GET"]) @jwt_required() def search_apis(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_apis(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route('/grafana', methods=['GET']) @jwt_required() Loading capif_backend/backoffice_service/controllers/invokers_controller.py 0 → 100644 +107 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes invokers_routes = Blueprint("invokers_routes", __name__) operations = Operations() # create operations object -> operations.py # GET invokers with date order and pagination @cross_origin() @invokers_routes.route("/", methods=["GET"]) @jwt_required() def get_invokers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_invokers_pages_order(page, page_size, order) # GET a JSON with all invokers @cross_origin() @invokers_routes.route("/invokersTotal", methods=["GET"]) @jwt_required() def get_invokers(): return operations.get_invokers() # GET invokers with pagination @cross_origin() @invokers_routes.route("/pages", methods=["GET"]) @jwt_required() def get_invokersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_invokersPages(page, page_size) # DELETE a security context of an invoker @cross_origin() @invokers_routes.route("/security/<invoker_id>/<aef_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_security_context(invoker_id, aef_id, api_id): if invoker_id == "null" or aef_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_security_context(invoker_id, aef_id, api_id) # SEARCH invokers @cross_origin() @invokers_routes.route("/search", methods=["GET"]) @jwt_required() def search_invokers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_invokers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # GET the number of invokers @cross_origin() @invokers_routes.route("/numInvokers", methods=["GET"]) @jwt_required() def get_num_ixnvokers(): return operations.get_num_invokers() # GET security context of an invoker -> single page invoker information @cross_origin() @invokers_routes.route("/security/<invoker_id>", methods=["GET"]) @jwt_required() def get_invoker_security_context(invoker_id): if invoker_id == "null": return jsonify(message="Invalid invoker_id", security_contexts=None), 400 return operations.get_invoker_security_context(invoker_id) # DELETE a single invoker @cross_origin() @invokers_routes.route("/<id>", methods=["DELETE"]) @jwt_required() def delete_invoker(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_invoker(id) # DELETE multiple invokers @invokers_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_invokers_route(): try: invoker_ids = request.json.get('invoker_ids', []) if not invoker_ids: return jsonify(message="No invoker IDs provided"), 400 responses = operations.delete_invokers(invoker_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting invokers", error=str(e)), 500 No newline at end of file capif_backend/backoffice_service/controllers/providers_controller.py 0 → 100644 +106 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes providers_routes = Blueprint("providers_routes", __name__) operations = Operations() # create operations object -> operations.py # GET providers with date order and pagination @cross_origin() @providers_routes.route("/", methods=["GET"]) @jwt_required() def get_providers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_providers_pages_order(page, page_size, order) # GET a JSON with all providers @cross_origin() @providers_routes.route("/providersTotal", methods=["GET"]) @jwt_required() def get_providers(): return operations.get_providers() # GET providers with pagination @cross_origin() @providers_routes.route("/pages", methods=["GET"]) 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) # GET provider service -> single page provider information @cross_origin() @providers_routes.route("/services/<id>", methods=["GET"]) @jwt_required() def get_provider_services(id): if id == "null": return jsonify(message="Invalid apf_id", object=None), 400 return operations.get_provider_services(id) # SEARCH providers @cross_origin() @providers_routes.route("/search", methods=["GET"]) @jwt_required() def search_providers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_providers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # GET the number of providers @cross_origin() @providers_routes.route("/numProviders", methods=["GET"]) @jwt_required() def get_num_providers(): return operations.get_num_providers() # DELETE a single provider @cross_origin() @providers_routes.route("/<id>", methods=["DELETE"]) @jwt_required() def delete_provider(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_provider(id) # DELETE multiple providers @providers_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_providers_route(): try: provider_ids = request.json.get('provider_ids', []) if not provider_ids: return jsonify(message="No provider IDs provided"), 400 responses = operations.delete_providers(provider_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting providers", error=str(e)), 500 # DELETE a service from a provider @cross_origin() @providers_routes.route("/services/<apf_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_provider_service(apf_id, api_id): if apf_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_provider_service(apf_id, api_id) No newline at end of file Loading
capif_backend/backoffice_service/__main__.py +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ import json import requests import os from .controllers.default_controller import backoffice_routes from .controllers.invokers_controller import invokers_routes from .controllers.providers_controller import providers_routes from .controllers.users_controller import users_routes from .controllers.apis_controller import apis_routes from .controllers.login import access_routes from flask_cors import CORS Loading @@ -18,6 +22,10 @@ CORS(app) # habilita CORS para todas las rutas en la aplicación # other option modify URL -> app.register_blueprint(backoffice_routes, url_prefix="/resources") app.register_blueprint(backoffice_routes) app.register_blueprint(access_routes) app.register_blueprint(invokers_routes, url_prefix="/invokers") app.register_blueprint(providers_routes, url_prefix="/providers") app.register_blueprint(apis_routes, url_prefix="/apis") app.register_blueprint(users_routes, url_prefix="/users") @app.route("/options", methods=["OPTIONS"]) Loading
capif_backend/backoffice_service/controllers/apis_controller.py 0 → 100644 +80 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes apis_routes = Blueprint("apis_routes", __name__) operations = Operations() # create operations object -> operations.py # GET apis with date order and pagination @cross_origin() @apis_routes.route("/", methods=["GET"]) @jwt_required() def get_apis_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_apis_pages_order(page, page_size, order) # GET a JSON with all apis @cross_origin() @apis_routes.route("/apisTotal", methods=["GET"]) @jwt_required() def get_apis(): return operations.get_apis() # GET apis with pagination @cross_origin() @apis_routes.route("/pages", 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) # GET the number of apis @cross_origin() @apis_routes.route("/num", methods=["GET"]) @jwt_required() def get_num_apis(): return operations.get_num_apis() # SEARCH apis @cross_origin() @apis_routes.route("/search", methods=["GET"]) @jwt_required() def search_apis(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_apis(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # DELETE multiple apis @apis_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_apis_route(): try: apis = request.json.get('api', []) if not apis: return jsonify(message="No apis provided for delete."), 400 responses = operations.delete_providers_services(apis) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting apis", error=str(e)), 500 No newline at end of file
capif_backend/backoffice_service/controllers/default_controller.py +0 −338 Original line number Diff line number Diff line Loading @@ -13,108 +13,6 @@ GRAFANA_URL = 'http://grafana.mon.svc.cluster.local:3000' backoffice_routes = Blueprint("backoffice_routes", __name__) operations = Operations() # create operations object -> operations.py @cross_origin() @backoffice_routes.route("/resources/invokers", methods=["GET"]) @jwt_required() def get_invokers(): return operations.get_invokers() # GET /resources/invokers?page=1&page_size=10 @cross_origin() @backoffice_routes.route("/resources/invokersPages", methods=["GET"]) @jwt_required() def get_invokersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_invokersPages(page, page_size) @cross_origin() @backoffice_routes.route("/resources/invokersPagesOrder", methods=["GET"]) @jwt_required() def get_invokers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_invokers_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/invokers/search", methods=["GET"]) @jwt_required() def search_invokers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_invokers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numInvokers", methods=["GET"]) @jwt_required() def get_num_ixnvokers(): return operations.get_num_invokers() @cross_origin() @backoffice_routes.route("/resources/providers", methods=["GET"]) @jwt_required() 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/providersPagesOrder", methods=["GET"]) @jwt_required() def get_providers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_providers_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/providers/search", methods=["GET"]) @jwt_required() def search_providers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_providers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numProviders", methods=["GET"]) @jwt_required() def get_num_providers(): return operations.get_num_providers() @cross_origin() @backoffice_routes.route("/resources/invokers/security/<invoker_id>", methods=["GET"]) @jwt_required() def get_invoker_security_context(invoker_id): print("ESTOY EN BACKOFFICE ROUTES INVOKER ID: ", invoker_id) if invoker_id == "null": return jsonify(message="Invalid invoker_id", security_contexts=None), 400 return operations.get_invoker_security_context(invoker_id) @cross_origin() Loading @@ -125,242 +23,6 @@ def get_events(id): return jsonify(message="Invalid events id", object=None), 400 return operations.get_events(id) @cross_origin() @backoffice_routes.route("/resources/providers/services/<id>", methods=["GET"]) @jwt_required() def get_provider_services(id): if id == "null": return jsonify(message="Invalid apf_id", object=None), 400 return operations.get_provider_services(id) @cross_origin() @backoffice_routes.route("/resources/users/<name>", methods=["GET"]) @jwt_required() def get_capif_user(name): if id == "null": return jsonify(message="Invalid name", object=None), 400 return operations.get_user(name) @cross_origin() @backoffice_routes.route("/users", methods=["GET"]) @jwt_required() def get_capif_users(): if id == "null": 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/usersPagesOrder", methods=["GET"]) @jwt_required() def get_users_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.retrieve_users_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/users/search", methods=["GET"]) @jwt_required() def search_users(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_users(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route("/resources/numUsers", methods=["GET"]) @jwt_required() def get_capif_num_users(): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.get_num_user() @cross_origin() @backoffice_routes.route("/invokers/<id>", methods=["DELETE"]) @jwt_required() def delete_invoker(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_invoker(id) @backoffice_routes.route("/invokers10", methods=["DELETE"]) @jwt_required() def delete_invokers_route(): try: invoker_ids = request.json.get('invoker_ids', []) if not invoker_ids: return jsonify(message="No invoker IDs provided"), 400 responses = operations.delete_invokers(invoker_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting invokers", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/providers/<id>", methods=["DELETE"]) @jwt_required() def delete_provider(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_provider(id) @backoffice_routes.route("/providers10", methods=["DELETE"]) @jwt_required() def delete_providers_route(): try: provider_ids = request.json.get('provider_ids', []) if not provider_ids: return jsonify(message="No provider IDs provided"), 400 responses = operations.delete_providers(provider_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting providers", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/invokers/security/<invoker_id>/<aef_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_security_context(invoker_id, aef_id, api_id): if invoker_id == "null" or aef_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_security_context(invoker_id, aef_id, api_id) @cross_origin() @backoffice_routes.route("/providers/services/<apf_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_provider_service(apf_id, api_id): if apf_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_provider_service(apf_id, api_id) @backoffice_routes.route("/apis10", methods=["DELETE"]) @jwt_required() def delete_apis_route(): try: apis = request.json.get('api', []) if not apis: return jsonify(message="No apis provided for delete."), 400 responses = operations.delete_providers_services(apis) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting apis", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/user/<username>/<password>", methods=["DELETE"]) @jwt_required() def delete_user(username, password): if username == "null" or password == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_user(username, password) @backoffice_routes.route("/users10", methods=["DELETE"]) @jwt_required() def delete_users_route(): try: users = request.json.get('users', []) if not users: return jsonify(message="No users provided for delete."), 400 responses = operations.delete_users(users) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting users", error=str(e)), 500 @backoffice_routes.route("/user", methods=["POST"]) @jwt_required() def create_user_route(): try: user_data = request.json # Verificar que los datos necesarios están presentes if not all(key in user_data for key in ['username', 'password', 'cn', 'role', 'description']): return jsonify(message="Missing data for user creation."), 400 response = operations.create_user(user_data) return jsonify(response), 201 except Exception as e: return jsonify(message="Error creating user", error=str(e)), 500 @cross_origin() @backoffice_routes.route("/apis", methods=["GET"]) @jwt_required() 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("/apisPagesOrder", methods=["GET"]) @jwt_required() def get_apis_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_apis_pages_order(page, page_size, order) @cross_origin() @backoffice_routes.route("/apis/num", methods=["GET"]) @jwt_required() def get_num_apis(): return operations.get_num_apis() @cross_origin() @backoffice_routes.route("/apis/search", methods=["GET"]) @jwt_required() def search_apis(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_apis(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 @cross_origin() @backoffice_routes.route('/grafana', methods=['GET']) @jwt_required() Loading
capif_backend/backoffice_service/controllers/invokers_controller.py 0 → 100644 +107 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes invokers_routes = Blueprint("invokers_routes", __name__) operations = Operations() # create operations object -> operations.py # GET invokers with date order and pagination @cross_origin() @invokers_routes.route("/", methods=["GET"]) @jwt_required() def get_invokers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_invokers_pages_order(page, page_size, order) # GET a JSON with all invokers @cross_origin() @invokers_routes.route("/invokersTotal", methods=["GET"]) @jwt_required() def get_invokers(): return operations.get_invokers() # GET invokers with pagination @cross_origin() @invokers_routes.route("/pages", methods=["GET"]) @jwt_required() def get_invokersPages(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) return operations.get_invokersPages(page, page_size) # DELETE a security context of an invoker @cross_origin() @invokers_routes.route("/security/<invoker_id>/<aef_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_security_context(invoker_id, aef_id, api_id): if invoker_id == "null" or aef_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_security_context(invoker_id, aef_id, api_id) # SEARCH invokers @cross_origin() @invokers_routes.route("/search", methods=["GET"]) @jwt_required() def search_invokers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_invokers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # GET the number of invokers @cross_origin() @invokers_routes.route("/numInvokers", methods=["GET"]) @jwt_required() def get_num_ixnvokers(): return operations.get_num_invokers() # GET security context of an invoker -> single page invoker information @cross_origin() @invokers_routes.route("/security/<invoker_id>", methods=["GET"]) @jwt_required() def get_invoker_security_context(invoker_id): if invoker_id == "null": return jsonify(message="Invalid invoker_id", security_contexts=None), 400 return operations.get_invoker_security_context(invoker_id) # DELETE a single invoker @cross_origin() @invokers_routes.route("/<id>", methods=["DELETE"]) @jwt_required() def delete_invoker(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_invoker(id) # DELETE multiple invokers @invokers_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_invokers_route(): try: invoker_ids = request.json.get('invoker_ids', []) if not invoker_ids: return jsonify(message="No invoker IDs provided"), 400 responses = operations.delete_invokers(invoker_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting invokers", error=str(e)), 500 No newline at end of file
capif_backend/backoffice_service/controllers/providers_controller.py 0 → 100644 +106 −0 Original line number Diff line number Diff line #!/usr/bin/env python3 from flask import Blueprint, jsonify from ..core.operations import Operations from flask_jwt_extended import jwt_required, get_jwt_identity from flask_cors import cross_origin import requests from flask import request # create blueprint backoffice_routes providers_routes = Blueprint("providers_routes", __name__) operations = Operations() # create operations object -> operations.py # GET providers with date order and pagination @cross_origin() @providers_routes.route("/", methods=["GET"]) @jwt_required() def get_providers_pages_order(): page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) order = request.args.get('order', default="ascending", type=str) return operations.get_providers_pages_order(page, page_size, order) # GET a JSON with all providers @cross_origin() @providers_routes.route("/providersTotal", methods=["GET"]) @jwt_required() def get_providers(): return operations.get_providers() # GET providers with pagination @cross_origin() @providers_routes.route("/pages", methods=["GET"]) 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) # GET provider service -> single page provider information @cross_origin() @providers_routes.route("/services/<id>", methods=["GET"]) @jwt_required() def get_provider_services(id): if id == "null": return jsonify(message="Invalid apf_id", object=None), 400 return operations.get_provider_services(id) # SEARCH providers @cross_origin() @providers_routes.route("/search", methods=["GET"]) @jwt_required() def search_providers(): try: search_term = request.args.get('searchTerm', default='', type=str) page = request.args.get('page', default=1, type=int) page_size = request.args.get('pageSize', default=10, type=int) response, status_code = operations.search_providers(search_term, page, page_size) return jsonify(response), status_code except Exception as e: return jsonify({"error": str(e)}), 500 # GET the number of providers @cross_origin() @providers_routes.route("/numProviders", methods=["GET"]) @jwt_required() def get_num_providers(): return operations.get_num_providers() # DELETE a single provider @cross_origin() @providers_routes.route("/<id>", methods=["DELETE"]) @jwt_required() def delete_provider(id): if id == "null": return jsonify(message="Invalid id", object=None), 400 return operations.delete_provider(id) # DELETE multiple providers @providers_routes.route("/", methods=["DELETE"]) @jwt_required() def delete_providers_route(): try: provider_ids = request.json.get('provider_ids', []) if not provider_ids: return jsonify(message="No provider IDs provided"), 400 responses = operations.delete_providers(provider_ids) return jsonify(responses), 200 except Exception as e: return jsonify(message="Error deleting providers", error=str(e)), 500 # DELETE a service from a provider @cross_origin() @providers_routes.route("/services/<apf_id>/<api_id>", methods=["DELETE"]) @jwt_required() def delete_provider_service(apf_id, api_id): if apf_id == "null" or api_id == "null": return jsonify(message="Invalid parameters", object=None), 400 return operations.delete_provider_service(apf_id, api_id) No newline at end of file