@things-factory/contact 10.1.47 → 10.1.105
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.
|
@@ -124,6 +124,7 @@ let ContactMutation = class ContactMutation {
|
|
|
124
124
|
exports.ContactMutation = ContactMutation;
|
|
125
125
|
tslib_1.__decorate([
|
|
126
126
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
127
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
127
128
|
(0, type_graphql_1.Mutation)(returns => contact_1.Contact, { description: 'To create new Contact' }),
|
|
128
129
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('contact')),
|
|
129
130
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -133,6 +134,7 @@ tslib_1.__decorate([
|
|
|
133
134
|
], ContactMutation.prototype, "createContact", null);
|
|
134
135
|
tslib_1.__decorate([
|
|
135
136
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
137
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
136
138
|
(0, type_graphql_1.Mutation)(returns => contact_1.Contact, { description: 'To modify Contact information' }),
|
|
137
139
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
138
140
|
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
@@ -143,6 +145,7 @@ tslib_1.__decorate([
|
|
|
143
145
|
], ContactMutation.prototype, "updateContact", null);
|
|
144
146
|
tslib_1.__decorate([
|
|
145
147
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
148
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
146
149
|
(0, type_graphql_1.Mutation)(returns => [contact_1.Contact], { description: "To modify multiple Contacts' information" }),
|
|
147
150
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('patches', type => [contact_type_1.ContactPatch])),
|
|
148
151
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -152,6 +155,7 @@ tslib_1.__decorate([
|
|
|
152
155
|
], ContactMutation.prototype, "updateMultipleContact", null);
|
|
153
156
|
tslib_1.__decorate([
|
|
154
157
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
158
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
155
159
|
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Contact' }),
|
|
156
160
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
157
161
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -161,6 +165,7 @@ tslib_1.__decorate([
|
|
|
161
165
|
], ContactMutation.prototype, "deleteContact", null);
|
|
162
166
|
tslib_1.__decorate([
|
|
163
167
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
168
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
164
169
|
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple Contacts' }),
|
|
165
170
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
|
166
171
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -170,6 +175,7 @@ tslib_1.__decorate([
|
|
|
170
175
|
], ContactMutation.prototype, "deleteContacts", null);
|
|
171
176
|
tslib_1.__decorate([
|
|
172
177
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
178
|
+
(0, type_graphql_1.Directive)('@privilege(category: "contact", privilege: "mutation", domainOwnerGranted: true)'),
|
|
173
179
|
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple Contacts' }),
|
|
174
180
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('contacts', type => [contact_type_1.ContactPatch])),
|
|
175
181
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contact-mutation.js","sourceRoot":"","sources":["../../../server/service/contact/contact-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\n\nimport { Contact } from './contact'\nimport { NewContact, ContactPatch } from './contact-type'\n\n@Resolver(Contact)\nexport class ContactMutation {\n @Directive('@transaction')\n @Mutation(returns => Contact, { description: 'To create new Contact' })\n async createContact(@Arg('contact') contact: NewContact, @Ctx() context: ResolverContext): Promise<Contact> {\n const { domain, user, tx } = context.state\n const file = contact.profile?.file\n\n if (contact.profile) {\n const { left, top, zoom } = contact.profile\n contact.profile = { left, top, zoom }\n }\n\n const ContactRepository = tx.getRepository(Contact)\n\n const result = await ContactRepository.save({\n ...contact,\n domain,\n creator: user,\n updater: user\n })\n\n if (file) {\n await createAttachment(\n null,\n {\n attachment: {\n file,\n refType: Contact.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Contact, { description: 'To modify Contact information' })\n async updateContact(\n @Arg('id') id: string,\n @Arg('patch') patch: ContactPatch,\n @Ctx() context: ResolverContext\n ): Promise<Contact> {\n const { domain, user, tx } = context.state\n const file = patch.profile?.file\n\n if (patch.profile) {\n const { left, top, zoom } = patch.profile\n patch.profile = { left, top, zoom } as any\n }\n\n const ContactRepository = tx.getRepository(Contact)\n\n const contact = await ContactRepository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await ContactRepository.save({\n ...contact,\n ...patch,\n updater: user\n })\n\n if (file) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file,\n refType: Contact.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Contact], { description: \"To modify multiple Contacts' information\" })\n async updateMultipleContact(\n @Arg('patches', type => [ContactPatch]) patches: ContactPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Contact[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const contactRepo = tx.getRepository(Contact)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await contactRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const contact = await contactRepo.findOne({\n where: { domain: { id: domain.id }, id: updateRecord.id }\n })\n\n if (!contact) {\n throw new Error(`failed to find contact to update: ${updateRecord.id}`)\n }\n\n const result = await contactRepo.save({\n ...contact,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Contact' })\n async deleteContact(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Contact).softDelete({ domain: { id: domain.id }, id })\n // await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Contacts' })\n async deleteContacts(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Contact).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n // await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple Contacts' })\n async importContacts(\n @Arg('contacts', type => [ContactPatch]) contacts: ContactPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n contacts.map(async (contact: ContactPatch) => {\n const createdContact: Contact = await tx.getRepository(Contact).save({ domain, ...contact })\n })\n )\n\n return true\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"contact-mutation.js","sourceRoot":"","sources":["../../../server/service/contact/contact-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'\n\nimport { Contact } from './contact'\nimport { NewContact, ContactPatch } from './contact-type'\n\n@Resolver(Contact)\nexport class ContactMutation {\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Contact, { description: 'To create new Contact' })\n async createContact(@Arg('contact') contact: NewContact, @Ctx() context: ResolverContext): Promise<Contact> {\n const { domain, user, tx } = context.state\n const file = contact.profile?.file\n\n if (contact.profile) {\n const { left, top, zoom } = contact.profile\n contact.profile = { left, top, zoom }\n }\n\n const ContactRepository = tx.getRepository(Contact)\n\n const result = await ContactRepository.save({\n ...contact,\n domain,\n creator: user,\n updater: user\n })\n\n if (file) {\n await createAttachment(\n null,\n {\n attachment: {\n file,\n refType: Contact.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Contact, { description: 'To modify Contact information' })\n async updateContact(\n @Arg('id') id: string,\n @Arg('patch') patch: ContactPatch,\n @Ctx() context: ResolverContext\n ): Promise<Contact> {\n const { domain, user, tx } = context.state\n const file = patch.profile?.file\n\n if (patch.profile) {\n const { left, top, zoom } = patch.profile\n patch.profile = { left, top, zoom } as any\n }\n\n const ContactRepository = tx.getRepository(Contact)\n\n const contact = await ContactRepository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await ContactRepository.save({\n ...contact,\n ...patch,\n updater: user\n })\n\n if (file) {\n await deleteAttachmentsByRef(null, { refBys: [result.id] }, context)\n await createAttachment(\n null,\n {\n attachment: {\n file,\n refType: Contact.name,\n refBy: result.id\n }\n },\n context\n )\n }\n\n return result\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => [Contact], { description: \"To modify multiple Contacts' information\" })\n async updateMultipleContact(\n @Arg('patches', type => [ContactPatch]) patches: ContactPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Contact[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const contactRepo = tx.getRepository(Contact)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await contactRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const contact = await contactRepo.findOne({\n where: { domain: { id: domain.id }, id: updateRecord.id }\n })\n\n if (!contact) {\n throw new Error(`failed to find contact to update: ${updateRecord.id}`)\n }\n\n const result = await contactRepo.save({\n ...contact,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete Contact' })\n async deleteContact(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Contact).softDelete({ domain: { id: domain.id }, id })\n // await deleteAttachmentsByRef(null, { refBys: [id] }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To delete multiple Contacts' })\n async deleteContacts(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Contact).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n // await deleteAttachmentsByRef(null, { refBys: ids }, context)\n\n return true\n }\n\n @Directive('@transaction')\n @Directive('@privilege(category: \"contact\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Mutation(returns => Boolean, { description: 'To import multiple Contacts' })\n async importContacts(\n @Arg('contacts', type => [ContactPatch]) contacts: ContactPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n contacts.map(async (contact: ContactPatch) => {\n const createdContact: Contact = await tx.getRepository(Contact).save({ domain, ...contact })\n })\n )\n\n return true\n }\n}\n"]}
|