@icure/api 8.2.8 → 8.3.1

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.
Files changed (36) hide show
  1. package/icc-api/api/IccUserApi.d.ts +1 -0
  2. package/icc-api/api/IccUserApi.js +10 -0
  3. package/icc-api/api/IccUserApi.js.map +1 -1
  4. package/icc-api/model/TimeTable.d.ts +0 -29
  5. package/icc-api/model/TimeTable.js.map +1 -1
  6. package/icc-x-api/icc-accesslog-x-api.js +4 -4
  7. package/icc-x-api/icc-accesslog-x-api.js.map +1 -1
  8. package/icc-x-api/icc-classification-x-api.js +2 -2
  9. package/icc-x-api/icc-classification-x-api.js.map +1 -1
  10. package/icc-x-api/icc-document-x-api.js +2 -2
  11. package/icc-x-api/icc-document-x-api.js.map +1 -1
  12. package/icc-x-api/icc-form-x-api.js +2 -2
  13. package/icc-x-api/icc-form-x-api.js.map +1 -1
  14. package/icc-x-api/icc-invoice-x-api.js +2 -2
  15. package/icc-x-api/icc-invoice-x-api.js.map +1 -1
  16. package/icc-x-api/icc-maintenance-task-x-api.js +1 -1
  17. package/icc-x-api/icc-maintenance-task-x-api.js.map +1 -1
  18. package/icc-x-api/icc-patient-x-api.js +2 -2
  19. package/icc-x-api/icc-patient-x-api.js.map +1 -1
  20. package/icc-x-api/icc-receipt-x-api.js +2 -2
  21. package/icc-x-api/icc-receipt-x-api.js.map +1 -1
  22. package/icc-x-api/icc-topic-x-api.js +1 -1
  23. package/icc-x-api/icc-topic-x-api.js.map +1 -1
  24. package/icc-x-api/index.d.ts +2 -4
  25. package/icc-x-api/index.js +1 -3
  26. package/icc-x-api/index.js.map +1 -1
  27. package/package.json +1 -1
  28. package/test/icc-x-api/crud/entities-crud-test-interface.js +4 -11
  29. package/test/icc-x-api/crud/entities-crud-test-interface.js.map +1 -1
  30. package/test/icc-x-api/icc-helement-x-api-test.js +1 -1
  31. package/test/icc-x-api/icc-helement-x-api-test.js.map +1 -1
  32. package/test/icc-x-api/icc-time-table-x-api.js +2 -20
  33. package/test/icc-x-api/icc-time-table-x-api.js.map +1 -1
  34. package/icc-x-api/icc-time-table-x-api.d.ts +0 -115
  35. package/icc-x-api/icc-time-table-x-api.js +0 -150
  36. package/icc-x-api/icc-time-table-x-api.js.map +0 -1
@@ -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 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"]}
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 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: false,\n create: async (api: IcureApi, _: Patient) => {\n const currentUser = await api.userApi.getCurrentUser()\n const item = new TimeTable({})\n return api.timetableApi.createTimeTable(item)\n },\n share: async (_: IcureApi, __: IcureApi, entity: any) => entity,\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"]}
@@ -39,7 +39,7 @@ function createPatient(patientApiForHcp, hcpUser) {
39
39
  function healthElementToCreate(hElementApiForHcp, hcpUser, patient) {
40
40
  return hElementApiForHcp.newInstance(hcpUser, patient, new HealthElement_1.HealthElement({
41
41
  id: (0, crypto_1.randomUUID)(),
42
- codes: [new Code_1.Code({ system: 'LOINC', code: '95209', version: '3' })],
42
+ codes: [new Code_1.Code({ type: 'LOINC', code: '95209', version: '3' })],
43
43
  note: 'SARS-V2',
44
44
  }), { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true });
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"icc-helement-x-api-test.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-helement-x-api-test.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccHelementXApi, IccPatientXApi } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { Code } from '../../icc-api/model/Code'\nimport { User } from '../../icc-api/model/User'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { HealthElementByIdsFilter } from '../../icc-x-api/filters/HealthElementByIdsFilter'\nimport { FilterChainHealthElement } from '../../icc-api/model/FilterChainHealthElement'\nimport initApi = TestUtils.initApi\nimport { SecretIdUseOption } from '../../icc-x-api/crypto/SecretIdUseOption'\nimport UseAnyConfidential = SecretIdUseOption.UseAnyConfidential\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nasync function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n}\n\nfunction healthElementToCreate(hElementApiForHcp: IccHelementXApi, hcpUser: User, patient: Patient) {\n return hElementApiForHcp.newInstance(\n hcpUser,\n patient,\n new HealthElement({\n id: randomUUID(),\n codes: [new Code({ system: 'LOINC', code: '95209', version: '3' })],\n note: 'SARS-V2',\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n}\n\ndescribe('icc-helement-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('CreateHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const hElementToCreate = await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n\n // When\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(hcpUser, hElementToCreate)\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note == hElementToCreate.note)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('ModifyHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n await initApi(env!, hcp1Username)\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const newNote = 'SARS-V2 (COVID-19)'\n const modifiedHealthElement = await hElementApiForHcp.modifyHealthElementWithUser(hcpUser, {\n ...createdHealthElement,\n note: newNote,\n })\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note != createdHealthElement.note)\n assert(readHealthElement.note == modifiedHealthElement.note)\n assert(readHealthElement.note == newNote)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('findHealthElementsByHCPartyAndPatientWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const foundHealthElements = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(hcpUser, hcpUser.healthcarePartyId!, patient)\n const foundHealthElementsUsingPost = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(\n hcpUser,\n hcpUser.healthcarePartyId!,\n patient,\n true\n )\n\n // Then\n assert(foundHealthElements.length == 1, 'Found health elements should be 1')\n assert(foundHealthElements[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(foundHealthElementsUsingPost.length == 1, 'Found health elements using POST should be 1')\n assert(foundHealthElementsUsingPost[0].id == createdHealthElement.id, 'Found health element using POST should be the same as the created one')\n })\n\n it('filter healthcare element result should return same output by id', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const healthElementById = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id)\n const healthElementByFilter = await hElementApiForHcp.filterByWithUser(\n hcpUser,\n undefined,\n undefined,\n new FilterChainHealthElement({\n filter: new HealthElementByIdsFilter({\n ids: [createdHealthElement.id!],\n healthcarePartyId: hcpUser.healthcarePartyId!,\n }),\n })\n )\n\n // Then\n // expect(foundHealthElements).to.have.length(1)\n // expect(foundHealthElements[0].id).to.equal(createdHealthElement.id)\n assert(healthElementByFilter.rows?.length == 1, 'Found health elements should be 1')\n assert(healthElementByFilter.rows[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(!!healthElementById.note, 'Health element should have a note')\n\n assert(\n JSON.stringify(healthElementByFilter.rows[0]) === JSON.stringify(healthElementById),\n 'Found health elements by id should match the one found by filter'\n )\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.healthcareElementApi.createHealthElementWithUser(\n user1,\n await api1.healthcareElementApi.newInstance(user1, samplePatient, { note: encryptedField })\n )\n expect(entity.note).to.be.equal(encryptedField)\n await api2.healthcareElementApi\n .getHealthElementWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.healthcareElementApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.healthcareElementApi.getHealthElementWithUser(user2, entity.id)\n expect(retrieved.note).to.be.equal(encryptedField)\n expect((await api2.healthcareElementApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n})\n"]}
1
+ {"version":3,"file":"icc-helement-x-api-test.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-helement-x-api-test.ts"],"names":[],"mappings":"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","sourcesContent":["import { before } from 'mocha'\n\nimport 'isomorphic-fetch'\n\nimport { EntityWithDelegationTypeName, IccHelementXApi, IccPatientXApi } from '../../icc-x-api'\nimport { Patient } from '../../icc-api/model/Patient'\nimport { assert, expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { HealthElement } from '../../icc-api/model/HealthElement'\nimport { Code } from '../../icc-api/model/Code'\nimport { User } from '../../icc-api/model/User'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { HealthElementByIdsFilter } from '../../icc-x-api/filters/HealthElementByIdsFilter'\nimport { FilterChainHealthElement } from '../../icc-api/model/FilterChainHealthElement'\nimport initApi = TestUtils.initApi\nimport { SecretIdUseOption } from '../../icc-x-api/crypto/SecretIdUseOption'\nimport UseAnyConfidential = SecretIdUseOption.UseAnyConfidential\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nasync function createPatient(patientApiForHcp: IccPatientXApi, hcpUser: User) {\n return patientApiForHcp.createPatientWithUser(\n hcpUser,\n await patientApiForHcp.newInstance(\n hcpUser,\n new Patient({\n id: randomUUID(),\n firstName: 'John',\n lastName: 'Snow',\n note: 'Winter is coming',\n })\n )\n )\n}\n\nfunction healthElementToCreate(hElementApiForHcp: IccHelementXApi, hcpUser: User, patient: Patient) {\n return hElementApiForHcp.newInstance(\n hcpUser,\n patient,\n new HealthElement({\n id: randomUUID(),\n codes: [new Code({ type: 'LOINC', code: '95209', version: '3' })],\n note: 'SARS-V2',\n }),\n { sfkOption: UseAnyConfidential, ignoreAutoDelegations: true }\n )\n}\n\ndescribe('icc-helement-x-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('CreateHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const hElementToCreate = await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n\n // When\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(hcpUser, hElementToCreate)\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note == hElementToCreate.note)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('ModifyHealthElementWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n await initApi(env!, hcp1Username)\n\n const patient = await createPatient(patientApiForHcp, hcpUser)\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const newNote = 'SARS-V2 (COVID-19)'\n const modifiedHealthElement = await hElementApiForHcp.modifyHealthElementWithUser(hcpUser, {\n ...createdHealthElement,\n note: newNote,\n })\n\n // Then\n const readHealthElement = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id!)\n assert(readHealthElement != null)\n assert(readHealthElement.id != null)\n assert(readHealthElement.note != createdHealthElement.note)\n assert(readHealthElement.note == modifiedHealthElement.note)\n assert(readHealthElement.note == newNote)\n expect(\n await cryptoApiForHcp.xapi.encryptionKeysOf({ entity: readHealthElement, type: EntityWithDelegationTypeName.HealthElement }, undefined)\n ).to.have.length(1)\n const decryptedPatientIds = await hElementApiForHcp.decryptPatientIdOf(readHealthElement)\n expect(decryptedPatientIds).to.have.length(1)\n expect(decryptedPatientIds[0]).to.equal(patient.id)\n })\n\n it('findHealthElementsByHCPartyAndPatientWithUser Success for HCP', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const foundHealthElements = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(hcpUser, hcpUser.healthcarePartyId!, patient)\n const foundHealthElementsUsingPost = await hElementApiForHcp.findHealthElementsByHCPartyAndPatientWithUser(\n hcpUser,\n hcpUser.healthcarePartyId!,\n patient,\n true\n )\n\n // Then\n assert(foundHealthElements.length == 1, 'Found health elements should be 1')\n assert(foundHealthElements[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(foundHealthElementsUsingPost.length == 1, 'Found health elements using POST should be 1')\n assert(foundHealthElementsUsingPost[0].id == createdHealthElement.id, 'Found health element using POST should be the same as the created one')\n })\n\n it('filter healthcare element result should return same output by id', async () => {\n // Given\n const {\n userApi: userApiForHcp,\n dataOwnerApi: dataOwnerApiForHcp,\n patientApi: patientApiForHcp,\n healthcareElementApi: hElementApiForHcp,\n cryptoApi: cryptoApiForHcp,\n } = await initApi(env!, hcp1Username)\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const patient = (await createPatient(patientApiForHcp, hcpUser)) as Patient\n const createdHealthElement = await hElementApiForHcp.createHealthElementWithUser(\n hcpUser,\n await healthElementToCreate(hElementApiForHcp, hcpUser, patient)\n )\n\n // When\n const healthElementById = await hElementApiForHcp.getHealthElementWithUser(hcpUser, createdHealthElement.id)\n const healthElementByFilter = await hElementApiForHcp.filterByWithUser(\n hcpUser,\n undefined,\n undefined,\n new FilterChainHealthElement({\n filter: new HealthElementByIdsFilter({\n ids: [createdHealthElement.id!],\n healthcarePartyId: hcpUser.healthcarePartyId!,\n }),\n })\n )\n\n // Then\n // expect(foundHealthElements).to.have.length(1)\n // expect(foundHealthElements[0].id).to.equal(createdHealthElement.id)\n assert(healthElementByFilter.rows?.length == 1, 'Found health elements should be 1')\n assert(healthElementByFilter.rows[0].id == createdHealthElement.id, 'Found health element should be the same as the created one')\n\n assert(!!healthElementById.note, 'Health element should have a note')\n\n assert(\n JSON.stringify(healthElementByFilter.rows[0]) === JSON.stringify(healthElementById),\n 'Found health elements by id should match the one found by filter'\n )\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const samplePatient = await api1.patientApi.createPatientWithUser(\n user1,\n await api1.patientApi.newInstance(user1, { firstName: 'Gigio', lastName: 'Bagigio' })\n )\n const encryptedField = 'Something encrypted'\n const entity = await api1.healthcareElementApi.createHealthElementWithUser(\n user1,\n await api1.healthcareElementApi.newInstance(user1, samplePatient, { note: encryptedField })\n )\n expect(entity.note).to.be.equal(encryptedField)\n await api2.healthcareElementApi\n .getHealthElementWithUser(user2, entity.id)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.healthcareElementApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.healthcareElementApi.getHealthElementWithUser(user2, entity.id)\n expect(retrieved.note).to.be.equal(encryptedField)\n expect((await api2.healthcareElementApi.decryptPatientIdOf(retrieved))[0]).to.equal(samplePatient.id)\n })\n})\n"]}
@@ -25,7 +25,7 @@ const types_1 = require("@icure/test-setup/types");
25
25
  let env;
26
26
  function instanceTimeTableFor(timeTableApi, user) {
27
27
  return __awaiter(this, void 0, void 0, function* () {
28
- return timeTableApi.newInstance(user, new TimeTable_1.TimeTable({
28
+ return new TimeTable_1.TimeTable({
29
29
  id: (0, crypto_1.randomUUID)(),
30
30
  tags: [
31
31
  new Code_1.Code({
@@ -51,7 +51,7 @@ function instanceTimeTableFor(timeTableApi, user) {
51
51
  ],
52
52
  }),
53
53
  ],
54
- }));
54
+ });
55
55
  });
56
56
  }
57
57
  describe('icc-x-time-table-api Tests', () => {
@@ -78,23 +78,5 @@ describe('icc-x-time-table-api Tests', () => {
78
78
  (0, chai_1.expect)(yield cryptoApi.xapi.secretIdsOf({ entity: createdTimeTable, type: icc_x_api_1.EntityWithDelegationTypeName.TimeTable }, undefined)).to.have.length(0);
79
79
  (0, chai_1.expect)(yield cryptoApi.xapi.owningEntityIdsOf({ entity: createdTimeTable, type: icc_x_api_1.EntityWithDelegationTypeName.TimeTable }, undefined)).to.have.length(0);
80
80
  }));
81
- it('Share with should work as expected', () => __awaiter(void 0, void 0, void 0, function* () {
82
- const api1 = yield initApi(env, test_utils_1.hcp1Username);
83
- const user1 = yield api1.userApi.getCurrentUser();
84
- const api2 = yield initApi(env, test_utils_1.hcp2Username);
85
- const user2 = yield api2.userApi.getCurrentUser();
86
- const entity = (yield api1.timetableApi.createTimeTable(yield api1.timetableApi.newInstance(user1, {})));
87
- yield api2.timetableApi
88
- .getTimeTable(entity.id)
89
- .then(() => {
90
- throw new Error('Should not be able to get the entity');
91
- })
92
- .catch(() => {
93
- /* expected */
94
- });
95
- yield api1.timetableApi.shareWith(user2.healthcarePartyId, entity);
96
- const retrieved = yield api2.timetableApi.getTimeTable(entity.id);
97
- (0, chai_1.expect)(retrieved.id).to.equal(entity.id);
98
- }));
99
81
  });
100
82
  //# sourceMappingURL=icc-time-table-x-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icc-time-table-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-time-table-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\n\nimport { before } from 'mocha'\nimport { getEnvironmentInitializer, hcp1Username, hcp2Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { EntityWithDelegationTypeName, IccTimeTableXApi } from '../../icc-x-api'\nimport initApi = TestUtils.initApi\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { TimeTable } from '../../icc-api/model/TimeTable'\nimport { Code } from '../../icc-api/model/Code'\nimport { TimeTableItem } from '../../icc-api/model/TimeTableItem'\nimport { TimeTableHour } from '../../icc-api/model/TimeTableHour'\nimport { expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nasync function instanceTimeTableFor(timeTableApi: IccTimeTableXApi, user: User): Promise<TimeTable> {\n return timeTableApi.newInstance(\n user,\n new TimeTable({\n id: randomUUID(),\n tags: [\n new Code({\n id: 'ICURE|MY-CODE|1',\n code: 'MY-CODE',\n type: 'ICURE',\n version: '1',\n }),\n ],\n name: 'Main TimeTable',\n startTime: 20221101000,\n endTime: 20221128000,\n items: [\n new TimeTableItem({\n id: randomUUID(),\n rrule: 'RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=10',\n days: ['monday', 'tuesday', 'thursday'],\n hours: [\n new TimeTableHour({\n startHour: 1000,\n endHour: 1800,\n }),\n ],\n }),\n ],\n })\n )\n}\n\ndescribe('icc-x-time-table-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('Create TimeTable Success', async () => {\n // Given\n const { userApi: userApiForHcp, timetableApi: timeTableApiForHcp, cryptoApi } = await initApi(env, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const baseTimeTable = await instanceTimeTableFor(timeTableApiForHcp, hcpUser)\n\n // When\n const createdTimeTable = await timeTableApiForHcp.createTimeTable(baseTimeTable)\n\n // Then\n expect(createdTimeTable.id).to.equals(baseTimeTable.id)\n expect(createdTimeTable.name).to.equals(baseTimeTable.name)\n expect(createdTimeTable.startTime).to.equals(baseTimeTable.startTime)\n expect(createdTimeTable.items!.length).to.equals(1)\n expect(\n await cryptoApi.xapi.encryptionKeysOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)\n ).to.have.length(1)\n expect(await cryptoApi.xapi.secretIdsOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)).to.have.length(0)\n expect(\n await cryptoApi.xapi.owningEntityIdsOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)\n ).to.have.length(0)\n })\n\n it('Share with should work as expected', async () => {\n const api1 = await initApi(env!, hcp1Username)\n const user1 = await api1.userApi.getCurrentUser()\n const api2 = await initApi(env!, hcp2Username)\n const user2 = await api2.userApi.getCurrentUser()\n const entity = (await api1.timetableApi.createTimeTable(await api1.timetableApi.newInstance(user1, {})))!\n await api2.timetableApi\n .getTimeTable(entity.id!)\n .then(() => {\n throw new Error('Should not be able to get the entity')\n })\n .catch(() => {\n /* expected */\n })\n await api1.timetableApi.shareWith(user2.healthcarePartyId!, entity)\n const retrieved = await api2.timetableApi.getTimeTable(entity.id!)\n expect(retrieved.id).to.equal(entity.id)\n })\n})\n"]}
1
+ {"version":3,"file":"icc-time-table-x-api.js","sourceRoot":"","sources":["../../../test/icc-x-api/icc-time-table-x-api.ts"],"names":[],"mappings":"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","sourcesContent":["import 'isomorphic-fetch'\n\nimport { before } from 'mocha'\nimport { getEnvironmentInitializer, hcp1Username, setLocalStorage, TestUtils } from '../utils/test_utils'\nimport { EntityWithDelegationTypeName } from '../../icc-x-api'\nimport initApi = TestUtils.initApi\nimport { User } from '../../icc-api/model/User'\nimport { randomUUID } from 'crypto'\nimport { TimeTable } from '../../icc-api/model/TimeTable'\nimport { Code } from '../../icc-api/model/Code'\nimport { TimeTableItem } from '../../icc-api/model/TimeTableItem'\nimport { TimeTableHour } from '../../icc-api/model/TimeTableHour'\nimport { expect } from 'chai'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport {IccTimeTableApi} from \"../../icc-api\"\n\nsetLocalStorage(fetch)\nlet env: TestVars\n\nasync function instanceTimeTableFor(timeTableApi: IccTimeTableApi, user: User): Promise<TimeTable> {\n return new TimeTable({\n id: randomUUID(),\n tags: [\n new Code({\n id: 'ICURE|MY-CODE|1',\n code: 'MY-CODE',\n type: 'ICURE',\n version: '1',\n }),\n ],\n name: 'Main TimeTable',\n startTime: 20221101000,\n endTime: 20221128000,\n items: [\n new TimeTableItem({\n id: randomUUID(),\n rrule: 'RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=10',\n days: ['monday', 'tuesday', 'thursday'],\n hours: [\n new TimeTableHour({\n startHour: 1000,\n endHour: 1800,\n }),\n ],\n }),\n ],\n })\n}\n\ndescribe('icc-x-time-table-api Tests', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('Create TimeTable Success', async () => {\n // Given\n const { userApi: userApiForHcp, timetableApi: timeTableApiForHcp, cryptoApi } = await initApi(env, hcp1Username)\n\n const hcpUser = await userApiForHcp.getCurrentUser()\n\n const baseTimeTable = await instanceTimeTableFor(timeTableApiForHcp, hcpUser)\n\n // When\n const createdTimeTable = await timeTableApiForHcp.createTimeTable(baseTimeTable)\n\n // Then\n expect(createdTimeTable.id).to.equals(baseTimeTable.id)\n expect(createdTimeTable.name).to.equals(baseTimeTable.name)\n expect(createdTimeTable.startTime).to.equals(baseTimeTable.startTime)\n expect(createdTimeTable.items!.length).to.equals(1)\n expect(\n await cryptoApi.xapi.encryptionKeysOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)\n ).to.have.length(1)\n expect(await cryptoApi.xapi.secretIdsOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)).to.have.length(0)\n expect(\n await cryptoApi.xapi.owningEntityIdsOf({ entity: createdTimeTable, type: EntityWithDelegationTypeName.TimeTable }, undefined)\n ).to.have.length(0)\n })\n\n})\n"]}
@@ -1,115 +0,0 @@
1
- import { IccTimeTableApi } from '../icc-api';
2
- import { User } from '../icc-api/model/User';
3
- import { TimeTable } from '../icc-api/model/TimeTable';
4
- import { IccCryptoXApi } from './icc-crypto-x-api';
5
- import { IccDataOwnerXApi } from './icc-data-owner-x-api';
6
- import * as models from '../icc-api/model/models';
7
- import { AuthenticationProvider } from './auth/AuthenticationProvider';
8
- import { ShareMetadataBehaviour } from './crypto/ShareMetadataBehaviour';
9
- import { ShareResult } from './utils/ShareResult';
10
- import { EntityShareRequest } from '../icc-api/model/requests/EntityShareRequest';
11
- import RequestedPermissionEnum = EntityShareRequest.RequestedPermissionEnum;
12
- import { SecureDelegation } from '../icc-api/model/SecureDelegation';
13
- import AccessLevelEnum = SecureDelegation.AccessLevelEnum;
14
- import { XHR } from '../icc-api/api/XHR';
15
- import { EncryptedEntityXApi } from './basexapi/EncryptedEntityXApi';
16
- export declare class IccTimeTableXApi extends IccTimeTableApi implements EncryptedEntityXApi<models.TimeTable> {
17
- private readonly crypto;
18
- private readonly dataOwnerApi;
19
- private readonly autofillAuthor;
20
- i18n: any;
21
- get headers(): Promise<Array<XHR.Header>>;
22
- constructor(host: string, headers: {
23
- [key: string]: string;
24
- }, crypto: IccCryptoXApi, dataOwnerApi: IccDataOwnerXApi, autofillAuthor: boolean, authenticationProvider?: AuthenticationProvider, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
25
- /**
26
- * Creates a new instance of timetable with initialised encryption metadata (not in the database).
27
- * @param user the current user.
28
- * @param tt initialised data for the timetable. Metadata such as id, creation data, etc. will be automatically initialised, but you can specify
29
- * other kinds of data or overwrite generated metadata with this. You can't specify encryption metadata.
30
- * @param options optional parameters:
31
- * - additionalDelegates: delegates which will have access to the entity in addition to the current data owner and delegates from the
32
- * auto-delegations. Must be an object which associates each data owner id with the access level to give to that data owner. May overlap with
33
- * auto-delegations, in such case the access level specified here will be used.
34
- * - ignoreAutoDelegations: if true the data won't be shared with the autodelegations of the user, but only with additional delegates
35
- * - alternateRootDelegation: by default a new entity is created with a root delegation from self to self. In keyless mode this is not possible,
36
- * and instead the root delegation will be from self to another. You have to specify which delegate will be part of the root delegation.
37
- * @return a new instance of timetable.
38
- */
39
- newInstance(user: User, tt: TimeTable, options?: {
40
- additionalDelegates?: {
41
- [dataOwnerId: string]: AccessLevelEnum;
42
- };
43
- ignoreAutoDelegations?: boolean;
44
- alternateRootDelegation?: string;
45
- }): Promise<TimeTable>;
46
- /**
47
- * @return if the logged data owner has write access to the content of the given time table
48
- */
49
- hasWriteAccess(timeTable: models.TimeTable): Promise<boolean>;
50
- /**
51
- * Share an existing time table with other data owners, allowing them to access the non-encrypted data of the time table and optionally also
52
- * the encrypted content, with read-only or read-write permissions.
53
- * @param delegateId the id of the data owner which will be granted access to the time table.
54
- * @param timeTable the time table to share.
55
- * @param options optional parameters to customize the sharing behaviour:
56
- * - shareSecretIds: specifies which secret ids of the entity should be shared. If not provided all secret ids available to the current user will be shared
57
- * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted
58
- * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}). Note that by default a
59
- * time table does not have encrypted content.
60
- * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.
61
- * @return the updated entity
62
- */
63
- shareWith(delegateId: string, timeTable: models.TimeTable, options?: {
64
- shareSecretIds?: string[];
65
- requestedPermissions?: RequestedPermissionEnum;
66
- shareEncryptionKey?: ShareMetadataBehaviour;
67
- }): Promise<models.TimeTable>;
68
- /**
69
- * Share an existing time table with other data owners, allowing them to access the non-encrypted data of the time table and optionally also
70
- * the encrypted content, with read-only or read-write permissions.
71
- * @param timeTable the time table to share.
72
- * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:
73
- * - shareSecretIds: specifies which secret ids of the entity should be shared. If not provided all secret ids available to the current user will be shared
74
- * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted
75
- * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}). Note that by default a
76
- * time table does not have encrypted content.
77
- * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.
78
- * @return the updated entity
79
- */
80
- shareWithMany(timeTable: models.TimeTable, delegates: {
81
- [delegateId: string]: {
82
- shareSecretIds?: string[];
83
- requestedPermissions?: RequestedPermissionEnum;
84
- shareEncryptionKey?: ShareMetadataBehaviour;
85
- };
86
- }): Promise<models.TimeTable>;
87
- /**
88
- * Share an existing time table with other data owners, allowing them to access the non-encrypted data of the time table and optionally also
89
- * the encrypted content, with read-only or read-write permissions.
90
- * @param timeTable the time table to share.
91
- * @param delegates associates the id of data owners which will be granted access to the entity, to the following sharing options:
92
- * - shareSecretIds: specifies which secret ids of the entity should be shared. If not provided all secret ids available to the current user will be shared
93
- * - shareEncryptionKey: specifies if the encryption key of the access log should be shared with the delegate, giving access to all encrypted
94
- * content of the entity, excluding other encrypted metadata (defaults to {@link ShareMetadataBehaviour.IF_AVAILABLE}). Note that by default a
95
- * time table does not have encrypted content.
96
- * - requestedPermissions: the requested permissions for the delegate, defaults to {@link RequestedPermissionEnum.MAX_WRITE}.
97
- * @return a promise which will contain the result of the operation: the updated entity if the operation was successful or details of the error if
98
- * the operation failed.
99
- */
100
- tryShareWithMany(timeTable: models.TimeTable, delegates: {
101
- [delegateId: string]: {
102
- shareSecretIds?: string[];
103
- requestedPermissions?: RequestedPermissionEnum;
104
- shareEncryptionKey?: ShareMetadataBehaviour;
105
- };
106
- }): Promise<ShareResult<models.TimeTable>>;
107
- getDataOwnersWithAccessTo(entity: models.TimeTable): Promise<{
108
- permissionsByDataOwnerId: {
109
- [p: string]: AccessLevelEnum;
110
- };
111
- hasUnknownAnonymousDataOwners: boolean;
112
- }>;
113
- getEncryptionKeysOf(entity: models.TimeTable): Promise<string[]>;
114
- createDelegationDeAnonymizationMetadata(entity: models.TimeTable, delegates: string[]): Promise<void>;
115
- }