{"version":3,"sources":["../../../../src/repositories/A-EntityRepository/A-EntityRepository.component.ts"],"names":[],"mappings":"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","file":"A-EntityRepository.component.mjs","sourcesContent":["import { A_Caller, A_Entity, A_Feature, A_Inject, A_Scope, A_TYPES__Entity_Constructor, A_TYPES__EntityFeatures } from \"@adaas/a-concept\";\nimport { A_HTTPChannel } from \"@adaas/a-server/channels/A-Http/A-Http.channel\";\nimport { A_ServerEntityList } from \"@adaas/a-server/entity-list/A-EntityList.entity\";\nimport { A_Command, A_CommandFeatures, A_TYPES__Command_Serialized } from \"@adaas/a-utils/a-command\";\nimport { A_Manifest } from \"@adaas/a-utils/a-manifest\";\n\n\n\n\nexport class A_EntityRepository extends A_HTTPChannel {\n\n\n    @A_Feature.Extend({\n        name: A_CommandFeatures.onExecute,\n    })\n    async execute(\n        @A_Inject(A_Caller) command: A_Command,\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        // Check if the scope has a manifest and if the entity is allowed to load\n        if (\n            scope.has(A_Manifest) && !scope.resolve(A_Manifest)!\n                .isAllowed(command.constructor, 'load')\n                .for(command.constructor as A_TYPES__Entity_Constructor)\n        )\n            return;\n\n        const response = await this.post<A_TYPES__Command_Serialized>(`/a-command/v1/${command.aseid.entity}`, command.toJSON());\n\n        command.fromJSON(response.data!);\n    }\n\n    @A_Feature.Extend({\n        name: A_TYPES__EntityFeatures.LOAD,\n        scope: [A_ServerEntityList]\n    })\n    async list(\n        @A_Inject(A_Caller) entity: A_ServerEntityList,\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        // Check if the scope has a manifest and if the entity is allowed to load\n        if (\n            scope.has(A_Manifest) && !scope.resolve(A_Manifest)!\n                .isAllowed(entity.constructor, 'load')\n                .for(entity.constructor as A_TYPES__Entity_Constructor)\n        )\n            return;\n\n        const response = await this.get(`/a-list/v1/${entity.aseid.entity}`);\n\n        entity.fromJSON(response.data);\n    }\n\n\n    @A_Feature.Extend({\n        name: A_TYPES__EntityFeatures.LOAD,\n        scope: [A_ServerEntityList]\n    })\n    async load(\n        @A_Inject(A_Caller) entity: A_Entity,\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        // Check if the scope has a manifest and if the entity is allowed to load\n        if (\n            scope.has(A_Manifest) && !scope.resolve(A_Manifest)!\n                .isAllowed(entity.constructor, 'load')\n                .for(entity.constructor as A_TYPES__Entity_Constructor)\n        )\n            return;\n\n        const response = await this.get(`/a-entity/v1/${entity.aseid.toString()}`);\n\n        entity.fromJSON(response.data);\n    }\n\n\n    @A_Feature.Extend({\n        name: A_TYPES__EntityFeatures.SAVE,\n        scope: [A_ServerEntityList]\n    })\n    async save(\n        @A_Inject(A_Caller) entity: A_Entity,\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        // Check if the scope has a manifest and if the entity is allowed to save\n        if (\n            scope.has(A_Manifest) && !scope.resolve(A_Manifest)!\n                .isAllowed(entity.constructor, 'save')\n                .for(entity.constructor as A_TYPES__Entity_Constructor)\n        )\n            return;\n\n        const response = await this.post(`/a-entity/v1/${entity.aseid.toString()}`, entity.toJSON());\n\n        entity.fromJSON(response.data);\n    }\n\n\n    @A_Feature.Extend({\n        name: A_TYPES__EntityFeatures.DESTROY,\n        scope: [A_ServerEntityList]\n    })\n    async destroy(\n        @A_Inject(A_Caller) entity: A_Entity,\n        @A_Inject(A_Scope) scope: A_Scope,\n    ) {\n        // Check if the scope has a manifest and if the entity is allowed to destroy\n        if (\n            scope.has(A_Manifest) && !scope.resolve(A_Manifest)!\n                .isAllowed(entity.constructor, 'destroy')\n                .for(entity.constructor as A_TYPES__Entity_Constructor)\n        )\n            return;\n\n        const response = await this.delete(`/a-entity/v1/${entity.aseid.toString()}`);\n\n        entity.fromJSON(response.data);\n    }\n\n\n}"]}