@icure/api 8.0.24 → 8.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/icc-x-api/crypto/AES.d.ts +54 -2
- package/icc-x-api/crypto/AES.js +5 -5
- package/icc-x-api/crypto/AES.js.map +1 -1
- package/icc-x-api/crypto/CryptoPrimitives.d.ts +21 -12
- package/icc-x-api/crypto/CryptoPrimitives.js +8 -19
- package/icc-x-api/crypto/CryptoPrimitives.js.map +1 -1
- package/icc-x-api/crypto/DelegationsDeAnonymization.js +1 -1
- package/icc-x-api/crypto/DelegationsDeAnonymization.js.map +1 -1
- package/icc-x-api/crypto/HMACUtils.d.ts +8 -1
- package/icc-x-api/crypto/HMACUtils.js +3 -3
- package/icc-x-api/crypto/HMACUtils.js.map +1 -1
- package/icc-x-api/crypto/NativeCryptoPrimitivesBridge.d.ts +113 -0
- package/icc-x-api/crypto/NativeCryptoPrimitivesBridge.js +477 -0
- package/icc-x-api/crypto/NativeCryptoPrimitivesBridge.js.map +1 -0
- package/icc-x-api/crypto/RSA.d.ts +107 -4
- package/icc-x-api/crypto/RSA.js +4 -4
- package/icc-x-api/crypto/RSA.js.map +1 -1
- package/icc-x-api/crypto/shamir.d.ts +7 -3
- package/icc-x-api/crypto/shamir.js +14 -5
- package/icc-x-api/crypto/shamir.js.map +1 -1
- package/icc-x-api/index.d.ts +1 -0
- package/icc-x-api/index.js +5 -3
- package/icc-x-api/index.js.map +1 -1
- package/package.json +1 -1
- package/test/icc-api/api/IccMedicalLocationApi.js +6 -6
- package/test/icc-api/api/IccMedicalLocationApi.js.map +1 -1
- package/test/icc-x-api/crud/comprehensive-crud-test.js +1 -1
- package/test/icc-x-api/crud/comprehensive-crud-test.js.map +1 -1
- package/test/icc-x-api/crud/entities-crud-test-interface.js +1 -0
- package/test/icc-x-api/crud/entities-crud-test-interface.js.map +1 -1
- package/test/icc-x-api/crypto/anonymous-delegations-test.js +1 -2
- package/test/icc-x-api/crypto/anonymous-delegations-test.js.map +1 -1
- package/test/icc-x-api/crypto/crypto-utils.js +1 -2
- package/test/icc-x-api/crypto/crypto-utils.js.map +1 -1
- package/test/icc-x-api/crypto/exchange-data-manager-test.js +1 -1
- package/test/icc-x-api/crypto/exchange-data-manager-test.js.map +1 -1
- package/test/icc-x-api/crypto/full-crypto-test.js +1 -2
- package/test/icc-x-api/crypto/full-crypto-test.js.map +1 -1
- package/test/icc-x-api/crypto/secure-delegations-manager-test.js +1 -1
- package/test/icc-x-api/crypto/secure-delegations-manager-test.js.map +1 -1
- package/test/icc-x-api/crypto/secure-delegations-metadata-decryptor-test.js +2 -2
- package/test/icc-x-api/crypto/secure-delegations-metadata-decryptor-test.js.map +1 -1
- package/test/icc-x-api/crypto/shamir.js +6 -7
- package/test/icc-x-api/crypto/shamir.js.map +1 -1
- package/test/icc-x-api/crypto/signature-keys-manager-test.js +1 -1
- package/test/icc-x-api/crypto/signature-keys-manager-test.js.map +1 -1
- package/test/icc-x-api/icc-maintenance-task-x-api-test.js +3 -2
- package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +1 -1
- package/test/icc-x-api/icc-user-x-api-test.js +1 -1
- package/test/icc-x-api/icc-user-x-api-test.js.map +1 -1
- package/test/icc-x-api/patient-user.js +1 -2
- package/test/icc-x-api/patient-user.js.map +1 -1
- package/test/icc-x-api/test-legacy-data-support.js +2 -3
- package/test/icc-x-api/test-legacy-data-support.js.map +1 -1
- package/test/utils/FakeDataOwnerApi.js +1 -1
- package/test/utils/FakeDataOwnerApi.js.map +1 -1
- package/test/utils/FakeGenericApi.js +1 -1
- package/test/utils/FakeGenericApi.js.map +1 -1
- package/test/utils/TestApi.js +1 -1
- package/test/utils/TestApi.js.map +1 -1
- package/test/utils/TestCryptoStrategies.js +1 -1
- package/test/utils/TestCryptoStrategies.js.map +1 -1
- package/test/utils/test_utils.js +6 -6
- package/test/utils/test_utils.js.map +1 -1
- package/test/icc-api/api/IccArticleApi.d.ts +0 -1
- package/test/icc-api/api/IccArticleApi.js +0 -64
- package/test/icc-api/api/IccArticleApi.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comprehensive-crud-test.js","sourceRoot":"","sources":["../../../../test/icc-x-api/crud/comprehensive-crud-test.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { before } from 'mocha'\nimport {\n createNewHcpApi,\n getEnvironmentInitializer,\n hcp1Username,\n isLiteTest,\n itNoLite,\n patUsername,\n setLocalStorage,\n TestUtils,\n} from '../../utils/test_utils'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { hex2ua, IcureApi, RSAUtils, ShaVersion } from '../../../icc-x-api'\nimport * as chaiAsPromised from 'chai-as-promised'\nimport { expect, use as chaiUse } from 'chai'\nimport { entities } from './entities-crud-test-interface'\nimport { Patient } from '../../../icc-api/model/Patient'\nimport { IdWithRev } from '../../../icc-api/model/IdWithRev'\nimport { randomUUID, webcrypto } from 'crypto'\nimport { TestCryptoStrategies } from '../../utils/TestCryptoStrategies'\nimport initMasterApi = TestUtils.initMasterApi\nimport initApi = TestUtils.initApi\n\nchaiUse(chaiAsPromised)\n\nsetLocalStorage(fetch)\n\ntype OpType = 'create' | 'delete'\ntype ApisWithRole = { allowed: IcureApi; denied?: IcureApi }\n\nlet masterApi: IcureApi\nlet hcpApi: IcureApi\nlet patientApi: IcureApi\nlet noPermissionsApi: IcureApi\nlet patient: Patient\nlet entitiesPermissions: { [key: string]: { [key in OpType]: ApisWithRole } }\n\nlet env: TestVars\n\ndescribe('CRUD Test', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n masterApi = await initMasterApi(env)\n hcpApi = await initApi(env, hcp1Username)\n patientApi = await initApi(env, patUsername)\n const patientUser = await patientApi.userApi.getCurrentUser()\n patient = await patientApi.patientApi.getPatientWithUser(patientUser, patientUser.patientId!)\n const { api, credentials, user } = await createNewHcpApi(env)\n if (!isLiteTest()) await masterApi.userApi.setRoles(user.id!, ['BASIC_USER'])\n\n const RSA = new RSAUtils(webcrypto as any)\n const keys = {\n publicKey: await RSA.importKey('spki', hex2ua(credentials.publicKey), ['encrypt'], ShaVersion.Sha1),\n privateKey: await RSA.importKey('pkcs8', hex2ua(credentials.privateKey), ['decrypt'], ShaVersion.Sha1),\n }\n\n noPermissionsApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(keys),\n webcrypto as any,\n fetch\n )\n\n entitiesPermissions = {\n AccessLog: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Agenda: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Article: {\n create: { allowed: masterApi, denied: patientApi },\n delete: { allowed: masterApi, denied: hcpApi },\n },\n CalendarItem: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n CalendarItemType: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Classification: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n ClassificationTemplate: {\n create: { allowed: masterApi, denied: patientApi },\n delete: { allowed: masterApi, denied: hcpApi },\n },\n Contact: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Device: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Document: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Form: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n HealthcarePartyInGroup: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n HealthcareParty: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n HealthcareElement: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Insurance: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Invoice: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Keyword: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n MaintenanceTask: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n MedicalLocation: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Message: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Patient: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Place: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Receipt: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n TimeTable: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Topic: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n }\n })\n\n Object.entries(entities)\n .filter(([, operations]) => {\n return !isLiteTest() || !operations.cloudOnly\n })\n .forEach(([entityType, operations]) => {\n it(`A user with create permissions can create a ${entityType}`, async () => {\n const api = entitiesPermissions[entityType].create.allowed\n const entity = await operations.create(api, patient)\n expect(entity.rev).not.to.be.undefined\n })\n\n itNoLite(`A user without create permissions cannot create a ${entityType}`, async function () {\n if (!!operations.skipDenied) this.skip()\n const api = entitiesPermissions[entityType].create.denied\n if (!api) this.skip()\n await expect(operations.create(api, patient)).to.be.rejected\n })\n\n it(`A user can delete many ${entityType} if they have access to them`, async function () {\n if (!operations.encryptable) {\n this.skip()\n }\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const notAccessibleEntities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n notAccessibleEntities.push(entity)\n }\n const accessibleEntities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient).then((e) => {\n return operations.share(creationApi, api, e)\n })\n accessibleEntities.push(entity)\n }\n const result = await operations.deleteMany(api, isLiteTest() ? accessibleEntities : notAccessibleEntities.concat(accessibleEntities))\n expect(result.length).to.be.equal(accessibleEntities.length)\n result.forEach((el) => {\n expect(accessibleEntities.find((it) => it.id === el.id)).not.to.be.undefined\n })\n })\n\n itNoLite(`A user can delete many ${entityType} if they have the correct role`, async function () {\n if (!!operations.encryptable) this.skip()\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const entities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n entities.push(entity)\n }\n const result = await operations.deleteMany(api, entities)\n expect(result.length).to.be.equal(entities.length)\n result.forEach((el) => {\n expect(entities.find((it) => it.id === el.id)).not.to.be.undefined\n })\n })\n\n itNoLite(`A user cannot delete many ${entityType} if they do not have the correct role`, async function () {\n if (!!operations.skipDenied) this.skip()\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.denied\n if (!api) {\n throw new Error('An API is required to perform this test')\n }\n const entities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n entities.push(entity)\n }\n await operations.deleteMany(api, entities).then(\n (result) => {\n expect(result).to.be.empty\n },\n () => {\n expect(true).to.be.eq(true, 'Response should be empty or promise rejected')\n }\n )\n })\n\n it(`A user can delete a single ${entityType} if they have access to it`, async function () {\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const entity = await operations.create(creationApi, patient).then((e) => {\n return operations.share(creationApi, api, e)\n })\n const result = await operations.delete(api, entity)\n expect(result.id).to.be.equal(entity.id)\n })\n\n itNoLite(`A user cannot delete a single ${entityType} if they do not have access to it`, async function () {\n if (!!operations.skipDenied) {\n this.skip()\n }\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.denied\n if (!api) {\n throw new Error('An API is required to perform this test')\n }\n const entity = await operations.create(creationApi, patient)\n await expect(operations.delete(api, entity)).to.be.rejected\n })\n\n it(`A user cannot delete a single ${entityType} that does not exist`, async function () {\n const api = entitiesPermissions[entityType].delete.allowed\n await expect(operations.delete(api, new IdWithRev({ id: randomUUID() }))).to.be.rejected\n })\n })\n})\n"]}
|
|
1
|
+
{"version":3,"file":"comprehensive-crud-test.js","sourceRoot":"","sources":["../../../../test/icc-x-api/crud/comprehensive-crud-test.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\nimport { before } from 'mocha'\nimport {\n createNewHcpApi,\n getEnvironmentInitializer,\n hcp1Username,\n isLiteTest,\n itNoLite,\n patUsername,\n setLocalStorage,\n TestUtils,\n} from '../../utils/test_utils'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { hex2ua, IcureApi, RSAUtils, RSAUtilsImpl, ShaVersion } from '../../../icc-x-api'\nimport * as chaiAsPromised from 'chai-as-promised'\nimport { expect, use as chaiUse } from 'chai'\nimport { entities } from './entities-crud-test-interface'\nimport { Patient } from '../../../icc-api/model/Patient'\nimport { IdWithRev } from '../../../icc-api/model/IdWithRev'\nimport { randomUUID, webcrypto } from 'crypto'\nimport { TestCryptoStrategies } from '../../utils/TestCryptoStrategies'\nimport initMasterApi = TestUtils.initMasterApi\nimport initApi = TestUtils.initApi\n\nchaiUse(chaiAsPromised)\n\nsetLocalStorage(fetch)\n\ntype OpType = 'create' | 'delete'\ntype ApisWithRole = { allowed: IcureApi; denied?: IcureApi }\n\nlet masterApi: IcureApi\nlet hcpApi: IcureApi\nlet patientApi: IcureApi\nlet noPermissionsApi: IcureApi\nlet patient: Patient\nlet entitiesPermissions: { [key: string]: { [key in OpType]: ApisWithRole } }\n\nlet env: TestVars\n\ndescribe('CRUD Test', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n masterApi = await initMasterApi(env)\n hcpApi = await initApi(env, hcp1Username)\n patientApi = await initApi(env, patUsername)\n const patientUser = await patientApi.userApi.getCurrentUser()\n patient = await patientApi.patientApi.getPatientWithUser(patientUser, patientUser.patientId!)\n const { api, credentials, user } = await createNewHcpApi(env)\n if (!isLiteTest()) await masterApi.userApi.setRoles(user.id!, ['BASIC_USER'])\n\n const RSA = new RSAUtilsImpl(webcrypto as any)\n const keys = {\n publicKey: await RSA.importKey('spki', hex2ua(credentials.publicKey), ['encrypt'], ShaVersion.Sha1),\n privateKey: await RSA.importKey('pkcs8', hex2ua(credentials.privateKey), ['decrypt'], ShaVersion.Sha1),\n }\n\n noPermissionsApi = await IcureApi.initialise(\n env.iCureUrl,\n { username: credentials.user, password: credentials.password },\n new TestCryptoStrategies(keys),\n webcrypto as any,\n fetch\n )\n\n entitiesPermissions = {\n AccessLog: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Agenda: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Article: {\n create: { allowed: masterApi, denied: patientApi },\n delete: { allowed: masterApi, denied: hcpApi },\n },\n CalendarItem: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n CalendarItemType: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Classification: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n ClassificationTemplate: {\n create: { allowed: masterApi, denied: patientApi },\n delete: { allowed: masterApi, denied: hcpApi },\n },\n Contact: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Device: {\n create: { allowed: masterApi },\n delete: { allowed: hcpApi, denied: patientApi },\n },\n Document: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Form: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n HealthcarePartyInGroup: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n HealthcareParty: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n HealthcareElement: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Insurance: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Invoice: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Keyword: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n MaintenanceTask: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n MedicalLocation: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Message: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Patient: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Place: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: masterApi, denied: patientApi },\n },\n Receipt: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n TimeTable: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n Topic: {\n create: { allowed: masterApi, denied: noPermissionsApi },\n delete: { allowed: hcpApi, denied: hcpApi },\n },\n }\n })\n\n Object.entries(entities)\n .filter(([, operations]) => {\n return !isLiteTest() || !operations.cloudOnly\n })\n .forEach(([entityType, operations]) => {\n it(`A user with create permissions can create a ${entityType}`, async () => {\n const api = entitiesPermissions[entityType].create.allowed\n const entity = await operations.create(api, patient)\n expect(entity.rev).not.to.be.undefined\n })\n\n itNoLite(`A user without create permissions cannot create a ${entityType}`, async function () {\n if (!!operations.skipDenied) this.skip()\n const api = entitiesPermissions[entityType].create.denied\n if (!api) this.skip()\n await expect(operations.create(api, patient)).to.be.rejected\n })\n\n it(`A user can delete many ${entityType} if they have access to them`, async function () {\n if (!operations.encryptable) {\n this.skip()\n }\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const notAccessibleEntities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n notAccessibleEntities.push(entity)\n }\n const accessibleEntities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient).then((e) => {\n return operations.share(creationApi, api, e)\n })\n accessibleEntities.push(entity)\n }\n const result = await operations.deleteMany(api, isLiteTest() ? accessibleEntities : notAccessibleEntities.concat(accessibleEntities))\n expect(result.length).to.be.equal(accessibleEntities.length)\n result.forEach((el) => {\n expect(accessibleEntities.find((it) => it.id === el.id)).not.to.be.undefined\n })\n })\n\n itNoLite(`A user can delete many ${entityType} if they have the correct role`, async function () {\n if (!!operations.encryptable) this.skip()\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const entities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n entities.push(entity)\n }\n const result = await operations.deleteMany(api, entities)\n expect(result.length).to.be.equal(entities.length)\n result.forEach((el) => {\n expect(entities.find((it) => it.id === el.id)).not.to.be.undefined\n })\n })\n\n itNoLite(`A user cannot delete many ${entityType} if they do not have the correct role`, async function () {\n if (!!operations.skipDenied) this.skip()\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.denied\n if (!api) {\n throw new Error('An API is required to perform this test')\n }\n const entities: IdWithRev[] = []\n for (let i = 0; i <= 5; i++) {\n const entity = await operations.create(creationApi, patient)\n entities.push(entity)\n }\n await operations.deleteMany(api, entities).then(\n (result) => {\n expect(result).to.be.empty\n },\n () => {\n expect(true).to.be.eq(true, 'Response should be empty or promise rejected')\n }\n )\n })\n\n it(`A user can delete a single ${entityType} if they have access to it`, async function () {\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.allowed\n const entity = await operations.create(creationApi, patient).then((e) => {\n return operations.share(creationApi, api, e)\n })\n const result = await operations.delete(api, entity)\n expect(result.id).to.be.equal(entity.id)\n })\n\n itNoLite(`A user cannot delete a single ${entityType} if they do not have access to it`, async function () {\n if (!!operations.skipDenied) {\n this.skip()\n }\n const creationApi = entitiesPermissions[entityType].create.allowed\n const api = entitiesPermissions[entityType].delete.denied\n if (!api) {\n throw new Error('An API is required to perform this test')\n }\n const entity = await operations.create(creationApi, patient)\n await expect(operations.delete(api, entity)).to.be.rejected\n })\n\n it(`A user cannot delete a single ${entityType} that does not exist`, async function () {\n const api = entitiesPermissions[entityType].delete.allowed\n await expect(operations.delete(api, new IdWithRev({ id: randomUUID() }))).to.be.rejected\n })\n })\n})\n"]}
|
|
@@ -113,6 +113,7 @@ exports.entities = {
|
|
|
113
113
|
},
|
|
114
114
|
ClassificationTemplate: {
|
|
115
115
|
encryptable: false,
|
|
116
|
+
skipDenied: true,
|
|
116
117
|
create: (api, _) => __awaiter(void 0, void 0, void 0, function* () { return api.classificationTemplateApi.createClassificationTemplate(new ClassificationTemplate_1.ClassificationTemplate({ id: (0, crypto_1.randomUUID)(), label: (0, crypto_1.randomUUID)() })); }),
|
|
117
118
|
share: (_, __, entity) => __awaiter(void 0, void 0, void 0, function* () { return entity; }),
|
|
118
119
|
deleteMany: (api, ids) => __awaiter(void 0, void 0, void 0, function* () { return api.classificationTemplateApi.deleteClassificationTemplates(new ListOfIds_1.ListOfIds({ ids: ids.map((it) => it.id) })); }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities-crud-test-interface.js","sourceRoot":"","sources":["../../../../test/icc-x-api/crud/entities-crud-test-interface.ts"],"names":[],"mappings":"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","sourcesContent":["import { IcureApi } from '../../../icc-x-api'\nimport { randomUUID } from 'crypto'\nimport { Patient } from '../../../icc-api/model/Patient'\nimport { IdWithRev } from '../../../icc-api/model/IdWithRev'\nimport { AccessLog } from '../../../icc-api/model/AccessLog'\nimport { ListOfIds } from '../../../icc-api/model/ListOfIds'\nimport { DocIdentifier } from '../../../icc-api/model/DocIdentifier'\nimport { Agenda } from '../../../icc-api/model/Agenda'\nimport { Article } from '../../../icc-api/model/Article'\nimport { CalendarItem } from '../../../icc-api/model/CalendarItem'\nimport { CalendarItemType } from '../../../icc-api/model/CalendarItemType'\nimport { Classification } from '../../../icc-api/model/Classification'\nimport { ClassificationTemplate } from '../../../icc-api/model/ClassificationTemplate'\nimport { Contact } from '../../../icc-api/model/Contact'\nimport { Device } from '../../../icc-api/model/Device'\nimport { Document } from '../../../icc-api/model/Document'\nimport { Form } from '../../../icc-api/model/Form'\nimport { HealthcareParty } from '../../../icc-api/model/HealthcareParty'\nimport { HealthElement } from '../../../icc-api/model/HealthElement'\nimport { Insurance } from '../../../icc-api/model/Insurance'\nimport { Invoice } from '../../../icc-api/model/Invoice'\nimport { Keyword } from '../../../icc-api/model/Keyword'\nimport { MaintenanceTask } from '../../../icc-api/model/MaintenanceTask'\nimport { MedicalLocation } from '../../../icc-api/model/MedicalLocation'\nimport { Message } from '../../../icc-api/model/Message'\nimport { Place } from '../../../icc-api/model/Place'\nimport { Receipt } from '../../../icc-api/model/Receipt'\nimport { TimeTable } from '../../../icc-api/model/TimeTable'\nimport { Topic } from '../../../icc-api/model/Topic'\n\nexport interface CRUDInterface {\n encryptable: boolean\n skipDenied?: boolean\n cloudOnly?: boolean\n create(api: IcureApi, patient: Patient): Promise<IdWithRev>\n share(delegatorApi: IcureApi, delegateApi: IcureApi, entity: any): Promise<IdWithRev>\n deleteMany(api: IcureApi, ids: IdWithRev[]): Promise<Array<DocIdentifier>>\n delete(api: IcureApi, id: IdWithRev): Promise<DocIdentifier>\n}\n\nexport const entities: { [key: string]: CRUDInterface } = {\n AccessLog: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const accessLog = await api.accessLogApi.newInstance(currentUser, patient, { detail: randomUUID() })\n return api.accessLogApi.createAccessLogWithUser(currentUser, accessLog)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.accessLogApi.shareWith(delegateId, entity as AccessLog)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.accessLogApi.deleteAccessLogs(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.accessLogApi.deleteAccessLog(id.id!),\n },\n Agenda: {\n skipDenied: true,\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.agendaApi.createAgenda(new Agenda({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.agendaApi.deleteAgendas(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.agendaApi.deleteAgenda(id.id!),\n },\n Article: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.articleApi.createArticle(new Article({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.articleApi.deleteArticles(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.articleApi.deleteArticle(id.id!),\n },\n CalendarItem: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.calendarItemApi.newInstance(currentUser, { title: randomUUID() })\n return api.calendarItemApi.createCalendarItemWithHcParty(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.calendarItemApi.shareWith(delegateId, entity as CalendarItem)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.calendarItemApi.deleteCalendarItems(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.calendarItemApi.deleteCalendarItem(id.id!),\n },\n CalendarItemType: {\n skipDenied: true,\n encryptable: false,\n create: async (api: IcureApi, _: Patient) =>\n api.calendarItemTypeApi.createCalendarItemType(new CalendarItemType({ id: randomUUID(), color: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.calendarItemTypeApi.deleteCalendarItemTypes(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.calendarItemTypeApi.deleteCalendarItemTypes(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw Error('No element deleted')\n else return r[0]\n }),\n },\n Classification: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.classificationApi.newInstance(currentUser, patient, { label: randomUUID() })\n return api.classificationApi.createClassification(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.classificationApi.shareWith(delegateId, entity as Classification)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.classificationApi.deleteClassifications(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.classificationApi.deleteClassification(id.id!),\n },\n ClassificationTemplate: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) =>\n api.classificationTemplateApi.createClassificationTemplate(new ClassificationTemplate({ id: randomUUID(), label: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.classificationTemplateApi.deleteClassificationTemplates(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.classificationTemplateApi.deleteClassificationTemplate(id.id!),\n },\n Contact: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.contactApi.newInstance(currentUser, patient, { descr: randomUUID() })\n return (await api.contactApi.createContactWithUser(currentUser, item))!\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.contactApi.shareWith(delegateId, entity as Contact)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.contactApi.deleteContacts(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.contactApi.deleteContact(id.id!),\n },\n Device: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.deviceApi.createDevice(new Device({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.deviceApi.deleteDevices(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.deviceApi.deleteDevice(id.id!),\n },\n Document: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.documentApi.newInstance(currentUser, patient, { name: randomUUID() })\n return api.documentApi.createDocument(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.documentApi.shareWith(delegateId, entity as Document)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.documentApi.deleteDocuments(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.documentApi.deleteDocument(id.id!),\n },\n Form: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.formApi.newInstance(currentUser, patient, { uniqueId: randomUUID() })\n return api.formApi.createForm(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.formApi.shareWith(delegateId, entity as Form)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.formApi.deleteForms(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.formApi.deleteForm(id.id!),\n },\n HealthcareParty: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) =>\n api.healthcarePartyApi.createHealthcareParty(new HealthcareParty({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.healthcarePartyApi.deleteHealthcareParties(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.healthcarePartyApi.deleteHealthcareParty(id.id!),\n },\n HealthcarePartyInGroup: {\n encryptable: false,\n cloudOnly: true,\n create: async (api: IcureApi, _: Patient) =>\n api.healthcarePartyApi.createHealthcareParty(new HealthcareParty({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.healthcarePartyApi.deleteHealthcarePartiesInGroup(currentUser.groupId!, new ListOfIds({ ids: ids.map((it) => it.id!) }))\n },\n delete: async (api: IcureApi, id: IdWithRev) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.healthcarePartyApi.deleteHealthcarePartyInGroup(currentUser.groupId!, id.id!)\n },\n },\n HealthcareElement: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.healthcareElementApi.newInstance(currentUser, patient, { descr: randomUUID() })\n return api.healthcareElementApi.createHealthElementWithUser(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.healthcareElementApi.shareWith(delegateId, entity as HealthElement)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.healthcareElementApi.deleteHealthElements(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.healthcareElementApi.deleteHealthElement(id.id!),\n },\n Insurance: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.insuranceApi.createInsurance(new Insurance({ id: randomUUID(), code: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const ret: DocIdentifier[] = []\n for (const id of ids) {\n const result = await api.insuranceApi.deleteInsurance(id.id!)\n ret.push(result)\n }\n return ret\n },\n delete: async (api: IcureApi, id: IdWithRev) => api.insuranceApi.deleteInsurance(id.id!),\n },\n Invoice: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.invoiceApi.createInvoice(new Invoice({ id: randomUUID(), recipientId: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const ret: DocIdentifier[] = []\n for (const id of ids) {\n const result = await api.invoiceApi.deleteInvoice(id.id!)\n ret.push(result)\n }\n return ret\n },\n delete: async (api: IcureApi, id: IdWithRev) => api.invoiceApi.deleteInvoice(id.id!),\n },\n Keyword: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.keywordApi.createKeyword(new Keyword({ id: randomUUID(), value: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.keywordApi.deleteKeywords(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.keywordApi.deleteKeywords(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No keyword deleted')\n else return r[0]\n }),\n },\n MaintenanceTask: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.maintenanceTaskApi.newInstance(currentUser, {})\n return (await api.maintenanceTaskApi.createMaintenanceTaskWithUser(currentUser, item))!\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.maintenanceTaskApi.shareWith(delegateId, entity as MaintenanceTask)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.maintenanceTaskApi.deleteMaintenanceTasksWithUser(currentUser, new ListOfIds({ ids: ids.map((it) => it.id!) }))\n },\n delete: async (api: IcureApi, id: IdWithRev) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.maintenanceTaskApi.deleteMaintenanceTaskWithUser(currentUser, id.id!)\n },\n },\n MedicalLocation: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) =>\n api.medicalLocationApi.createMedicalLocation(new MedicalLocation({ id: randomUUID(), nihii: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.medicalLocationApi.deleteMedicalLocations(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.medicalLocationApi.deleteMedicalLocations(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No medical location deleted')\n else return r[0]\n }),\n },\n Message: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.messageApi.newInstance(currentUser, {})\n return api.messageApi.createMessage(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.messageApi.shareWith(delegateId, entity as Message, [])\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.messageApi.deleteMessages(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.messageApi.deleteMessage(id.id!),\n },\n Patient: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.patientApi.newInstance(currentUser, {})\n return api.patientApi.createPatientWithUser(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.patientApi.shareWith(delegateId, entity as Patient, [])\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.patientApi.deletePatients(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.patientApi.deletePatient(id.id!),\n },\n Place: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.placeApi.createPlace(new Place({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.placeApi.deletePlaces(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.placeApi.deletePlaces(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No place deleted')\n else return r[0]\n }),\n },\n Receipt: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.receiptApi.newInstance(currentUser, {})\n return api.receiptApi.createReceipt(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.receiptApi.shareWith(delegateId, entity as Receipt)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.receiptApi.deleteReceipts(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.receiptApi.deleteReceipt(id.id!),\n },\n TimeTable: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.timetableApi.newInstance(currentUser, {})\n return api.timetableApi.createTimeTable(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.timetableApi.shareWith(delegateId, entity as TimeTable)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.timetableApi.deleteTimeTables(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.timetableApi.deleteTimeTable(id.id!),\n },\n Topic: {\n encryptable: true,\n cloudOnly: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.topicApi.newInstance(currentUser, patient)\n return api.topicApi.createTopic(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.topicApi.shareWith(delegateId, entity as Topic)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.topicApi.deleteTopics(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.topicApi.deleteTopic(id.id!),\n },\n}\n"]}
|
|
1
|
+
{"version":3,"file":"entities-crud-test-interface.js","sourceRoot":"","sources":["../../../../test/icc-x-api/crud/entities-crud-test-interface.ts"],"names":[],"mappings":"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","sourcesContent":["import { IcureApi } from '../../../icc-x-api'\nimport { randomUUID } from 'crypto'\nimport { Patient } from '../../../icc-api/model/Patient'\nimport { IdWithRev } from '../../../icc-api/model/IdWithRev'\nimport { AccessLog } from '../../../icc-api/model/AccessLog'\nimport { ListOfIds } from '../../../icc-api/model/ListOfIds'\nimport { DocIdentifier } from '../../../icc-api/model/DocIdentifier'\nimport { Agenda } from '../../../icc-api/model/Agenda'\nimport { Article } from '../../../icc-api/model/Article'\nimport { CalendarItem } from '../../../icc-api/model/CalendarItem'\nimport { CalendarItemType } from '../../../icc-api/model/CalendarItemType'\nimport { Classification } from '../../../icc-api/model/Classification'\nimport { ClassificationTemplate } from '../../../icc-api/model/ClassificationTemplate'\nimport { Contact } from '../../../icc-api/model/Contact'\nimport { Device } from '../../../icc-api/model/Device'\nimport { Document } from '../../../icc-api/model/Document'\nimport { Form } from '../../../icc-api/model/Form'\nimport { HealthcareParty } from '../../../icc-api/model/HealthcareParty'\nimport { HealthElement } from '../../../icc-api/model/HealthElement'\nimport { Insurance } from '../../../icc-api/model/Insurance'\nimport { Invoice } from '../../../icc-api/model/Invoice'\nimport { Keyword } from '../../../icc-api/model/Keyword'\nimport { MaintenanceTask } from '../../../icc-api/model/MaintenanceTask'\nimport { MedicalLocation } from '../../../icc-api/model/MedicalLocation'\nimport { Message } from '../../../icc-api/model/Message'\nimport { Place } from '../../../icc-api/model/Place'\nimport { Receipt } from '../../../icc-api/model/Receipt'\nimport { TimeTable } from '../../../icc-api/model/TimeTable'\nimport { Topic } from '../../../icc-api/model/Topic'\n\nexport interface CRUDInterface {\n encryptable: boolean\n skipDenied?: boolean\n cloudOnly?: boolean\n create(api: IcureApi, patient: Patient): Promise<IdWithRev>\n share(delegatorApi: IcureApi, delegateApi: IcureApi, entity: any): Promise<IdWithRev>\n deleteMany(api: IcureApi, ids: IdWithRev[]): Promise<Array<DocIdentifier>>\n delete(api: IcureApi, id: IdWithRev): Promise<DocIdentifier>\n}\n\nexport const entities: { [key: string]: CRUDInterface } = {\n AccessLog: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const accessLog = await api.accessLogApi.newInstance(currentUser, patient, { detail: randomUUID() })\n return api.accessLogApi.createAccessLogWithUser(currentUser, accessLog)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.accessLogApi.shareWith(delegateId, entity as AccessLog)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.accessLogApi.deleteAccessLogs(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.accessLogApi.deleteAccessLog(id.id!),\n },\n Agenda: {\n skipDenied: true,\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.agendaApi.createAgenda(new Agenda({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.agendaApi.deleteAgendas(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.agendaApi.deleteAgenda(id.id!),\n },\n Article: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.articleApi.createArticle(new Article({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.articleApi.deleteArticles(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.articleApi.deleteArticle(id.id!),\n },\n CalendarItem: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.calendarItemApi.newInstance(currentUser, { title: randomUUID() })\n return api.calendarItemApi.createCalendarItemWithHcParty(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.calendarItemApi.shareWith(delegateId, entity as CalendarItem)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.calendarItemApi.deleteCalendarItems(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.calendarItemApi.deleteCalendarItem(id.id!),\n },\n CalendarItemType: {\n skipDenied: true,\n encryptable: false,\n create: async (api: IcureApi, _: Patient) =>\n api.calendarItemTypeApi.createCalendarItemType(new CalendarItemType({ id: randomUUID(), color: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.calendarItemTypeApi.deleteCalendarItemTypes(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.calendarItemTypeApi.deleteCalendarItemTypes(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw Error('No element deleted')\n else return r[0]\n }),\n },\n Classification: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.classificationApi.newInstance(currentUser, patient, { label: randomUUID() })\n return api.classificationApi.createClassification(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.classificationApi.shareWith(delegateId, entity as Classification)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.classificationApi.deleteClassifications(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.classificationApi.deleteClassification(id.id!),\n },\n ClassificationTemplate: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) =>\n api.classificationTemplateApi.createClassificationTemplate(new ClassificationTemplate({ id: randomUUID(), label: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.classificationTemplateApi.deleteClassificationTemplates(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.classificationTemplateApi.deleteClassificationTemplate(id.id!),\n },\n Contact: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.contactApi.newInstance(currentUser, patient, { descr: randomUUID() })\n return (await api.contactApi.createContactWithUser(currentUser, item))!\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.contactApi.shareWith(delegateId, entity as Contact)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.contactApi.deleteContacts(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.contactApi.deleteContact(id.id!),\n },\n Device: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) => api.deviceApi.createDevice(new Device({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.deviceApi.deleteDevices(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.deviceApi.deleteDevice(id.id!),\n },\n Document: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.documentApi.newInstance(currentUser, patient, { name: randomUUID() })\n return api.documentApi.createDocument(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.documentApi.shareWith(delegateId, entity as Document)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.documentApi.deleteDocuments(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.documentApi.deleteDocument(id.id!),\n },\n Form: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.formApi.newInstance(currentUser, patient, { uniqueId: randomUUID() })\n return api.formApi.createForm(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.formApi.shareWith(delegateId, entity as Form)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.formApi.deleteForms(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.formApi.deleteForm(id.id!),\n },\n HealthcareParty: {\n encryptable: false,\n create: async (api: IcureApi, _: Patient) =>\n api.healthcarePartyApi.createHealthcareParty(new HealthcareParty({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.healthcarePartyApi.deleteHealthcareParties(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.healthcarePartyApi.deleteHealthcareParty(id.id!),\n },\n HealthcarePartyInGroup: {\n encryptable: false,\n cloudOnly: true,\n create: async (api: IcureApi, _: Patient) =>\n api.healthcarePartyApi.createHealthcareParty(new HealthcareParty({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.healthcarePartyApi.deleteHealthcarePartiesInGroup(currentUser.groupId!, new ListOfIds({ ids: ids.map((it) => it.id!) }))\n },\n delete: async (api: IcureApi, id: IdWithRev) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.healthcarePartyApi.deleteHealthcarePartyInGroup(currentUser.groupId!, id.id!)\n },\n },\n HealthcareElement: {\n encryptable: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.healthcareElementApi.newInstance(currentUser, patient, { descr: randomUUID() })\n return api.healthcareElementApi.createHealthElementWithUser(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.healthcareElementApi.shareWith(delegateId, entity as HealthElement)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.healthcareElementApi.deleteHealthElements(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.healthcareElementApi.deleteHealthElement(id.id!),\n },\n Insurance: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.insuranceApi.createInsurance(new Insurance({ id: randomUUID(), code: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const ret: DocIdentifier[] = []\n for (const id of ids) {\n const result = await api.insuranceApi.deleteInsurance(id.id!)\n ret.push(result)\n }\n return ret\n },\n delete: async (api: IcureApi, id: IdWithRev) => api.insuranceApi.deleteInsurance(id.id!),\n },\n Invoice: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.invoiceApi.createInvoice(new Invoice({ id: randomUUID(), recipientId: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const ret: DocIdentifier[] = []\n for (const id of ids) {\n const result = await api.invoiceApi.deleteInvoice(id.id!)\n ret.push(result)\n }\n return ret\n },\n delete: async (api: IcureApi, id: IdWithRev) => api.invoiceApi.deleteInvoice(id.id!),\n },\n Keyword: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.keywordApi.createKeyword(new Keyword({ id: randomUUID(), value: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.keywordApi.deleteKeywords(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.keywordApi.deleteKeywords(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No keyword deleted')\n else return r[0]\n }),\n },\n MaintenanceTask: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.maintenanceTaskApi.newInstance(currentUser, {})\n return (await api.maintenanceTaskApi.createMaintenanceTaskWithUser(currentUser, item))!\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.maintenanceTaskApi.shareWith(delegateId, entity as MaintenanceTask)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.maintenanceTaskApi.deleteMaintenanceTasksWithUser(currentUser, new ListOfIds({ ids: ids.map((it) => it.id!) }))\n },\n delete: async (api: IcureApi, id: IdWithRev) => {\n const currentUser = await api.userApi.getCurrentUser()\n return api.maintenanceTaskApi.deleteMaintenanceTaskWithUser(currentUser, id.id!)\n },\n },\n MedicalLocation: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) =>\n api.medicalLocationApi.createMedicalLocation(new MedicalLocation({ id: randomUUID(), nihii: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) =>\n api.medicalLocationApi.deleteMedicalLocations(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.medicalLocationApi.deleteMedicalLocations(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No medical location deleted')\n else return r[0]\n }),\n },\n Message: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.messageApi.newInstance(currentUser, {})\n return api.messageApi.createMessage(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.messageApi.shareWith(delegateId, entity as Message, [])\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.messageApi.deleteMessages(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.messageApi.deleteMessage(id.id!),\n },\n Patient: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.patientApi.newInstance(currentUser, {})\n return api.patientApi.createPatientWithUser(currentUser, item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.patientApi.shareWith(delegateId, entity as Patient, [])\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.patientApi.deletePatients(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.patientApi.deletePatient(id.id!),\n },\n Place: {\n encryptable: false,\n skipDenied: true,\n create: async (api: IcureApi, _: Patient) => api.placeApi.createPlace(new Place({ id: randomUUID(), name: randomUUID() })),\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.placeApi.deletePlaces(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) =>\n api.placeApi.deletePlaces(new ListOfIds({ ids: [id.id!] })).then((r) => {\n if (r.length === 0) throw new Error('No place deleted')\n else return r[0]\n }),\n },\n Receipt: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.receiptApi.newInstance(currentUser, {})\n return api.receiptApi.createReceipt(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.receiptApi.shareWith(delegateId, entity as Receipt)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.receiptApi.deleteReceipts(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.receiptApi.deleteReceipt(id.id!),\n },\n TimeTable: {\n encryptable: true,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.timetableApi.newInstance(currentUser, {})\n return api.timetableApi.createTimeTable(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.timetableApi.shareWith(delegateId, entity as TimeTable)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.timetableApi.deleteTimeTables(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.timetableApi.deleteTimeTable(id.id!),\n },\n Topic: {\n encryptable: true,\n cloudOnly: true,\n create: async (api: IcureApi, patient: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = await api.topicApi.newInstance(currentUser, patient)\n return api.topicApi.createTopic(item)\n },\n share: async (delegatorApi: IcureApi, delegateApi: IcureApi, entity: any) => {\n const delegateUser = await delegateApi.userApi.getCurrentUser()\n const delegateId = delegateUser.healthcarePartyId ?? delegateUser.patientId ?? delegateUser.deviceId\n if (!delegateId) {\n throw new Error('Cannot share with non data owner user')\n }\n return delegatorApi.topicApi.shareWith(delegateId, entity as Topic)\n },\n deleteMany: async (api: IcureApi, ids: IdWithRev[]) => api.topicApi.deleteTopics(new ListOfIds({ ids: ids.map((it) => it.id!) })),\n delete: async (api: IcureApi, id: IdWithRev) => api.topicApi.deleteTopic(id.id!),\n },\n}\n"]}
|
|
@@ -20,7 +20,6 @@ const Patient_1 = require("../../../icc-api/model/Patient");
|
|
|
20
20
|
const HealthcareParty_1 = require("../../../icc-api/model/HealthcareParty");
|
|
21
21
|
const uuid_1 = require("uuid");
|
|
22
22
|
const TestApi_1 = require("../../utils/TestApi");
|
|
23
|
-
const CryptoPrimitives_1 = require("../../../icc-x-api/crypto/CryptoPrimitives");
|
|
24
23
|
const FilterChainMaintenanceTask_1 = require("../../../icc-api/model/FilterChainMaintenanceTask");
|
|
25
24
|
const MaintenanceTaskAfterDateFilter_1 = require("../../../icc-x-api/filters/MaintenanceTaskAfterDateFilter");
|
|
26
25
|
const KeyPairUpdateRequest_1 = require("../../../icc-x-api/maintenance/KeyPairUpdateRequest");
|
|
@@ -45,7 +44,7 @@ const typeCombinations = [
|
|
|
45
44
|
let env;
|
|
46
45
|
let masterApi;
|
|
47
46
|
let masterUser;
|
|
48
|
-
const primitives = new
|
|
47
|
+
const primitives = new icc_x_api_1.CryptoPrimitivesImpl(crypto_1.webcrypto);
|
|
49
48
|
describe('Anonymous delegations', () => {
|
|
50
49
|
(0, mocha_1.before)(function () {
|
|
51
50
|
return __awaiter(this, void 0, void 0, function* () {
|