Skip to content
This repository was archived by the owner on Nov 21, 2020. It is now read-only.

Commit 50969f0

Browse files
BuyantogtokhBattulga BatAmar
authored andcommitted
fix(deal/ticket/task): copy customer, companies when copy
close #626
1 parent 009ff18 commit 50969f0

File tree

9 files changed

+63
-12
lines changed

9 files changed

+63
-12
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
"graphql": "^14.0.2",
7878
"graphql-redis-subscriptions": "^1.4.0",
7979
"graphql-tools": "^4.0.3",
80-
"handlebars": "^4.5.1",
80+
"handlebars": "^4.5.2",
8181
"ioredis": "^3.2.2",
8282
"jsonwebtoken": "^8.1.0",
8383
"meteor-random": "^0.0.3",

src/data/resolvers/boardUtils.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Boards, Pipelines, Stages } from '../../db/models';
1+
import { Boards, Conformities, Pipelines, Stages } from '../../db/models';
22
import { NOTIFICATION_TYPES } from '../../db/models/definitions/constants';
33
import { IDealDocument } from '../../db/models/definitions/deals';
44
import { IUserDocument } from '../../db/models/definitions/users';
@@ -217,3 +217,33 @@ export const checkPermission = async (type: string, user: IUserDocument, mutatio
217217

218218
return;
219219
};
220+
221+
export const createConformity = async ({
222+
companyIds = [],
223+
customerIds = [],
224+
mainType,
225+
mainTypeId,
226+
}: {
227+
companyIds?: string[];
228+
customerIds?: string[];
229+
mainType: string;
230+
mainTypeId: string;
231+
}) => {
232+
for (const companyId of companyIds) {
233+
await Conformities.addConformity({
234+
mainType,
235+
mainTypeId,
236+
relType: 'company',
237+
relTypeId: companyId,
238+
});
239+
}
240+
241+
for (const customerId of customerIds) {
242+
await Conformities.addConformity({
243+
mainType,
244+
mainTypeId,
245+
relType: 'customer',
246+
relTypeId: customerId,
247+
});
248+
}
249+
};

src/data/resolvers/mutations/deals.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { IDeal } from '../../../db/models/definitions/deals';
55
import { checkPermission } from '../../permissions/wrappers';
66
import { IContext } from '../../types';
77
import { putCreateLog, putDeleteLog, putUpdateLog } from '../../utils';
8-
import { IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
8+
import { createConformity, IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
99
import { checkUserIds } from './notifications';
1010

1111
interface IDealsEdit extends IDeal {
@@ -26,6 +26,13 @@ const dealMutations = {
2626
userId: user._id,
2727
});
2828

29+
await createConformity({
30+
mainType: 'deal',
31+
mainTypeId: deal._id,
32+
customerIds: doc.customerIds,
33+
companyIds: doc.companyIds,
34+
});
35+
2936
await sendNotifications({
3037
item: deal,
3138
user,

src/data/resolvers/mutations/tasks.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { NOTIFICATION_TYPES } from '../../../db/models/definitions/constants';
44
import { checkPermission } from '../../permissions/wrappers';
55
import { IContext } from '../../types';
66
import { putCreateLog } from '../../utils';
7-
import { IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
7+
import { createConformity, IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
88
import { checkUserIds } from './notifications';
99

1010
interface ITasksEdit extends ITask {
@@ -24,6 +24,13 @@ const taskMutations = {
2424
userId: user._id,
2525
});
2626

27+
await createConformity({
28+
mainType: 'task',
29+
mainTypeId: task._id,
30+
companyIds: doc.companyIds,
31+
customerIds: doc.customerIds,
32+
});
33+
2734
await sendNotifications({
2835
item: task,
2936
user,

src/data/resolvers/mutations/tickets.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { ITicket } from '../../../db/models/definitions/tickets';
55
import { checkPermission } from '../../permissions/wrappers';
66
import { IContext } from '../../types';
77
import { putCreateLog } from '../../utils';
8-
import { IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
8+
import { createConformity, IBoardNotificationParams, itemsChange, sendNotifications } from '../boardUtils';
99
import { checkUserIds } from './notifications';
1010

1111
interface ITicketsEdit extends ITicket {
@@ -25,6 +25,13 @@ const ticketMutations = {
2525
userId: user._id,
2626
});
2727

28+
await createConformity({
29+
mainType: 'ticket',
30+
mainTypeId: ticket._id,
31+
customerIds: doc.customerIds,
32+
companyIds: doc.companyIds,
33+
});
34+
2835
await sendNotifications({
2936
item: ticket,
3037
user,

src/data/schema/deal.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export const queries = `
7171
`;
7272

7373
export const mutations = `
74-
dealsAdd(name: String!, ${commonMutationParams}): Deal
74+
dealsAdd(name: String!, companyIds: [String], customerIds: [String], ${commonMutationParams}): Deal
7575
dealsEdit(_id: String!, name: String, ${commonMutationParams}): Deal
7676
dealsChange( _id: String!, destinationStageId: String): Deal
7777
dealsUpdateOrder(stageId: String!, orders: [OrderItem]): [Deal]

src/data/schema/task.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ const commonParams = `
4040
`;
4141

4242
export const mutations = `
43-
tasksAdd(name: String!, ${commonParams}): Task
43+
tasksAdd(name: String!, customerIds: [String], companyIds: [String], ${commonParams}): Task
4444
tasksEdit(_id: String!, name: String, ${commonParams}): Task
4545
tasksChange( _id: String!, destinationStageId: String): Task
4646
tasksUpdateOrder(stageId: String!, orders: [OrderItem]): [Task]

src/data/schema/ticket.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const commonParams = `
4444
`;
4545

4646
export const mutations = `
47-
ticketsAdd(name: String!, ${commonParams}): Ticket
47+
ticketsAdd(name: String!, companyIds: [String], customerIds: [String], ${commonParams}): Ticket
4848
ticketsEdit(_id: String!, name: String, ${commonParams}): Ticket
4949
ticketsChange( _id: String!, destinationStageId: String): Ticket
5050
ticketsUpdateOrder(stageId: String!, orders: [OrderItem]): [Ticket]

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4401,10 +4401,10 @@ handlebars@^4.1.0:
44014401
optionalDependencies:
44024402
uglify-js "^3.1.4"
44034403

4404-
handlebars@^4.5.1:
4405-
version "4.5.1"
4406-
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.1.tgz#8a01c382c180272260d07f2d1aa3ae745715c7ba"
4407-
integrity sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==
4404+
handlebars@^4.5.2:
4405+
version "4.5.2"
4406+
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.2.tgz#5a4eb92ab5962ca3415ac188c86dc7f784f76a0f"
4407+
integrity sha512-29Zxv/cynYB7mkT1rVWQnV7mGX6v7H/miQ6dbEpYTKq5eJBN7PsRB+ViYJlcT6JINTSu4dVB9kOqEun78h6Exg==
44084408
dependencies:
44094409
neo-async "^2.6.0"
44104410
optimist "^0.6.1"

0 commit comments

Comments
 (0)