@nimee/inforu 1.0.4 → 1.0.5

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.
@@ -41,7 +41,7 @@ function triggerEventToStartAutomation(params) {
41
41
  return response.data;
42
42
  }
43
43
  catch (error) {
44
- throw new error_handler_1.CustomError("Failed to trigger automation", 450, error);
44
+ throw new error_handler_1.CustomError("Failed to trigger automation", 450, JSON.stringify(error));
45
45
  }
46
46
  });
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"automations.js","sourceRoot":"","sources":["../src/automations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAiE;AACjE,2CAAqD;AACrD,2DAAmC;AACnC,kDAA0B;AAC1B,SAAsB,6BAA6B,CAAC,MAA0E;;QAC5H,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACrD,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,IAAI,2BAAW,CAAC,+BAA+B,EAAE,GAAG,EAAE,mDAAmD,CAAC,CAAC;YACnH,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAA,kCAAsB,EAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE;oBACJ,YAAY,EAAE,SAAS;oBACvB,QAAQ,EAAE,gBAAgB;iBAC3B;aACF,CAAC;YACF,MAAM,MAAM,GAAG,kDAAkD,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;gBAC9C,OAAO,EAAE;oBACP,aAAa,EAAE,GAAG,MAAM,EAAE;iBAC3B;aACF,CAAC,CAAC;YACH,gBAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,2BAAW,CAAC,8BAA8B,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CAAA;AAxBD,sEAwBC;AACD,gBAAgB;AAChB,IAAI;AACJ,YAAY;AACZ,wBAAwB;AACxB,qBAAqB;AACrB,KAAK;AACL,YAAY;AACZ,sCAAsC;AACtC,iBAAiB;AACjB,wBAAwB;AACxB,sBAAsB;AACtB,kCAAkC;AAClC,8BAA8B;AAC9B,KAAK;AACL,IAAI;AACJ,qCAAqC;AACrC,KAAK;AACL,IAAI;AACJ,IAAI"}
1
+ {"version":3,"file":"automations.js","sourceRoot":"","sources":["../src/automations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAiE;AACjE,2CAAqD;AACrD,2DAAmC;AACnC,kDAA0B;AAC1B,SAAsB,6BAA6B,CAAC,MAA0E;;QAC5H,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YACrD,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,IAAI,2BAAW,CAAC,+BAA+B,EAAE,GAAG,EAAE,mDAAmD,CAAC,CAAC;YACnH,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAA,kCAAsB,EAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE;oBACJ,YAAY,EAAE,SAAS;oBACvB,QAAQ,EAAE,gBAAgB;iBAC3B;aACF,CAAC;YACF,MAAM,MAAM,GAAG,kDAAkD,CAAC;YAClE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;gBAC9C,OAAO,EAAE;oBACP,aAAa,EAAE,GAAG,MAAM,EAAE;iBAC3B;aACF,CAAC,CAAC;YACH,gBAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,2BAAW,CAAC,8BAA8B,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;CAAA;AAxBD,sEAwBC;AACD,gBAAgB;AAChB,IAAI;AACJ,YAAY;AACZ,wBAAwB;AACxB,qBAAqB;AACrB,KAAK;AACL,YAAY;AACZ,sCAAsC;AACtC,iBAAiB;AACjB,wBAAwB;AACxB,sBAAsB;AACtB,kCAAkC;AAClC,8BAA8B;AAC9B,KAAK;AACL,IAAI;AACJ,qCAAqC;AACrC,KAAK;AACL,IAAI;AACJ,IAAI"}
@@ -1,4 +1,6 @@
1
+ import { IEndUserModel } from "@nimee/shared-types";
1
2
  export declare function createGroup(params: {
2
3
  apiKey: string;
3
4
  name: string;
5
+ contacts: IEndUserModel[];
4
6
  }): Promise<any>;
@@ -16,21 +16,64 @@ exports.createGroup = void 0;
16
16
  const error_handler_1 = require("@nimee/error-handler");
17
17
  const logger_1 = __importDefault(require("@nimee/logger"));
18
18
  const axios_1 = __importDefault(require("axios"));
19
+ const normalize_1 = require("./normalize");
19
20
  function createGroup(params) {
20
21
  return __awaiter(this, void 0, void 0, function* () {
21
22
  try {
22
- const { apiKey, name } = params;
23
- if (!apiKey)
24
- throw new error_handler_1.CustomError("Missing_API_KEY_CREATE_GROUP", 400, "Missing API key");
25
- const apiUrl = "https://capi.inforu.co.il/api/Automation/Trigger?json=";
26
- const response = yield axios_1.default.post(`${apiUrl}`, { name });
27
- logger_1.default.debug("Group created successfully:", response.data);
23
+ const { apiKey, name, contacts } = params;
24
+ if (!apiKey || !name || !contacts)
25
+ throw new error_handler_1.CustomError("Missing_params_create_group", 450, `Missing params in create group ${JSON.stringify(params)}`);
26
+ const contactsPayload = { endUsers: contacts };
27
+ const normalizeContact = (0, normalize_1.prepareContactsPayload)(contactsPayload, name);
28
+ const json = {
29
+ Data: {
30
+ List: normalizeContact,
31
+ },
32
+ };
33
+ const apiUrl = "https://capi.inforu.co.il/api/v2/Contact/CreateOrUpdateContacts";
34
+ const response = yield axios_1.default.post(apiUrl, json, {
35
+ headers: {
36
+ Authorization: `${apiKey}`,
37
+ },
38
+ });
39
+ logger_1.default.debug(`Group created successfully with name: ${name}`);
28
40
  return response.data;
29
41
  }
30
42
  catch (error) {
31
- throw new error_handler_1.CustomError("Failed to create group", 500, error);
43
+ throw new error_handler_1.CustomError("Failed to create group", 450, JSON.stringify(error));
32
44
  }
33
45
  });
34
46
  }
35
47
  exports.createGroup = createGroup;
48
+ // var axios = require('axios');
49
+ // var data = JSON.stringify({
50
+ // "Data": {
51
+ // "List": [
52
+ // {
53
+ // "FirstName": "Hailey",
54
+ // "LastName": "Cohen",
55
+ // "PhoneNumber": "0589995551",
56
+ // "Email": "Cohen@test.com ",
57
+ // "AddToGroupName": "תמיכה"
58
+ // }
59
+ // ]
60
+ // }
61
+ // });
62
+ // var config = {
63
+ // method: 'post',
64
+ // maxBodyLength: Infinity,
65
+ // url: 'https://capi.inforu.co.il/api/v2/Contact/CreateOrUpdateContacts',
66
+ // headers: {
67
+ // 'Content-Type': 'application/json',
68
+ // 'Authorization': ' Basic USER:TOKEN (Encode Base64)'
69
+ // },
70
+ // data : data
71
+ // };
72
+ // axios(config)
73
+ // .then(function (response) {
74
+ // console.log(JSON.stringify(response.data));
75
+ // })
76
+ // .catch(function (error) {
77
+ // console.log(error);
78
+ // });
36
79
  //# sourceMappingURL=createGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createGroup.js","sourceRoot":"","sources":["../src/createGroup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAiE;AACjE,2DAAmC;AACnC,kDAA0B;AAC1B,SAAsB,WAAW,CAAC,MAAwC;;QACxE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,2BAAW,CAAC,8BAA8B,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,wDAAwD,CAAC;YACxE,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,gBAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,2BAAW,CAAC,wBAAwB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CAAA;AAXD,kCAWC"}
1
+ {"version":3,"file":"createGroup.js","sourceRoot":"","sources":["../src/createGroup.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAiE;AACjE,2DAAmC;AAEnC,kDAA0B;AAC1B,2CAAqD;AACrD,SAAsB,WAAW,CAAC,MAAmE;;QACnG,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;gBAC/B,MAAM,IAAI,2BAAW,CAAC,6BAA6B,EAAE,GAAG,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAExH,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC/C,MAAM,gBAAgB,GAAG,IAAA,kCAAsB,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE;oBACJ,IAAI,EAAE,gBAAgB;iBACvB;aACF,CAAC;YACF,MAAM,MAAM,GAAG,iEAAiE,CAAC;YACjF,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;gBAC9C,OAAO,EAAE;oBACP,aAAa,EAAE,GAAG,MAAM,EAAE;iBAC3B;aACF,CAAC,CAAC;YACH,gBAAM,CAAC,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,2BAAW,CAAC,wBAAwB,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;CAAA;AAxBD,kCAwBC;AAED,gCAAgC;AAChC,8BAA8B;AAC9B,cAAc;AACd,gBAAgB;AAChB,UAAU;AACV,iCAAiC;AACjC,+BAA+B;AAC/B,uCAAuC;AACvC,sCAAsC;AACtC,oCAAoC;AACpC,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM;AAEN,iBAAiB;AACjB,oBAAoB;AACpB,2BAA2B;AAC3B,4EAA4E;AAC5E,eAAe;AACf,0CAA0C;AAC1C,2DAA2D;AAC3D,OAAO;AACP,gBAAgB;AAChB,KAAK;AAEL,gBAAgB;AAChB,8BAA8B;AAC9B,gDAAgD;AAChD,KAAK;AACL,4BAA4B;AAC5B,wBAAwB;AACxB,MAAM"}
@@ -4,7 +4,7 @@ type ContactsPayload = {
4
4
  } | {
5
5
  endUser: IEndUserModel;
6
6
  };
7
- export declare function prepareContactsPayload(data: ContactsPayload): IInforuContact[];
7
+ export declare function prepareContactsPayload(data: ContactsPayload, groupName?: string): IInforuContact[];
8
8
  interface IInforuContact {
9
9
  FirstName: string;
10
10
  LastName: string;
package/dist/normalize.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prepareContactsPayload = void 0;
4
4
  const error_handler_1 = require("@nimee/error-handler");
5
- function normalizeBetweenEndUserToContacts(contacts) {
5
+ function normalizeBetweenEndUserToContacts(contacts, groupName) {
6
6
  return contacts.map((contact) => {
7
7
  return {
8
8
  FirstName: contact.fname,
@@ -11,15 +11,17 @@ function normalizeBetweenEndUserToContacts(contacts) {
11
11
  PhoneNumber: contact.phone,
12
12
  IsMember: contact.isMember,
13
13
  participationAtEventsCounter: contact.participationAtEventsCounter,
14
+ AddToGroupName: groupName,
15
+ ContactRefId: contact._id,
14
16
  };
15
17
  });
16
18
  }
17
- function prepareContactsPayload(data) {
19
+ function prepareContactsPayload(data, groupName) {
18
20
  if ("endUsers" in data && Array.isArray(data.endUsers) && data.endUsers.length) {
19
- return normalizeBetweenEndUserToContacts(data.endUsers);
21
+ return normalizeBetweenEndUserToContacts(data.endUsers, groupName);
20
22
  }
21
23
  else if ("endUser" in data) {
22
- return normalizeBetweenEndUserToContacts([data.endUser]);
24
+ return normalizeBetweenEndUserToContacts([data.endUser], groupName);
23
25
  }
24
26
  throw new error_handler_1.CustomError("invalid_data_in_inforu_prepare_contacts", 400, `Invalid data ${JSON.stringify(data)}`);
25
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AAGnD,SAAS,iCAAiC,CAAC,QAAyB;IAClE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,KAAK;YACxB,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,QAAQ,EAAG,OAAe,CAAC,QAAQ;YACnC,4BAA4B,EAAG,OAAe,CAAC,4BAA4B;SAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAID,SAAgB,sBAAsB,CAAC,IAAqB;IAC1D,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/E,OAAO,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,iCAAiC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,IAAI,2BAAW,CAAC,yCAAyC,EAAE,GAAG,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChH,CAAC;AAPD,wDAOC"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AAGnD,SAAS,iCAAiC,CAAC,QAAyB,EAAE,SAAkB;IACtF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,KAAK;YACxB,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,KAAK;YAC1B,QAAQ,EAAG,OAAe,CAAC,QAAQ;YACnC,4BAA4B,EAAG,OAAe,CAAC,4BAA4B;YAC3E,cAAc,EAAE,SAAS;YACzB,YAAY,EAAE,OAAO,CAAC,GAAG;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAID,SAAgB,sBAAsB,CAAC,IAAqB,EAAE,SAAkB;IAC9E,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/E,OAAO,iCAAiC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,iCAAiC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,2BAAW,CAAC,yCAAyC,EAAE,GAAG,EAAE,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChH,CAAC;AAPD,wDAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nimee/inforu",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "inforu SDK for Node.js",
5
5
  "main": "dist/index.js",
6
6
  "author": "dan goldberg",
@@ -24,7 +24,7 @@ export async function triggerEventToStartAutomation(params: { apiKey: string; us
24
24
  logger.debug(`trigger sent successfully: ${JSON.stringify(response.data)}`);
25
25
  return response.data;
26
26
  } catch (error) {
27
- throw new CustomError("Failed to trigger automation", 450, error);
27
+ throw new CustomError("Failed to trigger automation", 450, JSON.stringify(error));
28
28
  }
29
29
  }
30
30
  // json example:
@@ -1,15 +1,64 @@
1
1
  import { CustomError, errorHandler } from "@nimee/error-handler";
2
2
  import logger from "@nimee/logger";
3
+ import { IEndUserModel } from "@nimee/shared-types";
3
4
  import axios from "axios";
4
- export async function createGroup(params: { apiKey: string; name: string }) {
5
+ import { prepareContactsPayload } from "./normalize";
6
+ export async function createGroup(params: { apiKey: string; name: string; contacts: IEndUserModel[] }) {
5
7
  try {
6
- const { apiKey, name } = params;
7
- if (!apiKey) throw new CustomError("Missing_API_KEY_CREATE_GROUP", 400, "Missing API key");
8
- const apiUrl = "https://capi.inforu.co.il/api/Automation/Trigger?json=";
9
- const response = await axios.post(`${apiUrl}`, { name });
10
- logger.debug("Group created successfully:", response.data);
8
+ const { apiKey, name, contacts } = params;
9
+ if (!apiKey || !name || !contacts)
10
+ throw new CustomError("Missing_params_create_group", 450, `Missing params in create group ${JSON.stringify(params)}`);
11
+
12
+ const contactsPayload = { endUsers: contacts };
13
+ const normalizeContact = prepareContactsPayload(contactsPayload, name);
14
+ const json = {
15
+ Data: {
16
+ List: normalizeContact,
17
+ },
18
+ };
19
+ const apiUrl = "https://capi.inforu.co.il/api/v2/Contact/CreateOrUpdateContacts";
20
+ const response = await axios.post(apiUrl, json, {
21
+ headers: {
22
+ Authorization: `${apiKey}`,
23
+ },
24
+ });
25
+ logger.debug(`Group created successfully with name: ${name}`);
11
26
  return response.data;
12
27
  } catch (error) {
13
- throw new CustomError("Failed to create group", 500, error);
28
+ throw new CustomError("Failed to create group", 450, JSON.stringify(error));
14
29
  }
15
30
  }
31
+
32
+ // var axios = require('axios');
33
+ // var data = JSON.stringify({
34
+ // "Data": {
35
+ // "List": [
36
+ // {
37
+ // "FirstName": "Hailey",
38
+ // "LastName": "Cohen",
39
+ // "PhoneNumber": "0589995551",
40
+ // "Email": "Cohen@test.com ",
41
+ // "AddToGroupName": "תמיכה"
42
+ // }
43
+ // ]
44
+ // }
45
+ // });
46
+
47
+ // var config = {
48
+ // method: 'post',
49
+ // maxBodyLength: Infinity,
50
+ // url: 'https://capi.inforu.co.il/api/v2/Contact/CreateOrUpdateContacts',
51
+ // headers: {
52
+ // 'Content-Type': 'application/json',
53
+ // 'Authorization': ' Basic USER:TOKEN (Encode Base64)'
54
+ // },
55
+ // data : data
56
+ // };
57
+
58
+ // axios(config)
59
+ // .then(function (response) {
60
+ // console.log(JSON.stringify(response.data));
61
+ // })
62
+ // .catch(function (error) {
63
+ // console.log(error);
64
+ // });
package/src/normalize.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { CustomError } from "@nimee/error-handler";
2
2
  import { IEndUserModel } from "@nimee/shared-types";
3
3
 
4
- function normalizeBetweenEndUserToContacts(contacts: IEndUserModel[]): IInforuContact[] {
4
+ function normalizeBetweenEndUserToContacts(contacts: IEndUserModel[], groupName?: string): IInforuContact[] {
5
5
  return contacts.map((contact) => {
6
6
  return {
7
7
  FirstName: contact.fname,
@@ -10,17 +10,19 @@ function normalizeBetweenEndUserToContacts(contacts: IEndUserModel[]): IInforuCo
10
10
  PhoneNumber: contact.phone,
11
11
  IsMember: (contact as any).isMember,
12
12
  participationAtEventsCounter: (contact as any).participationAtEventsCounter,
13
+ AddToGroupName: groupName,
14
+ ContactRefId: contact._id,
13
15
  };
14
16
  });
15
17
  }
16
18
 
17
19
  type ContactsPayload = { endUsers: IEndUserModel[] } | { endUser: IEndUserModel };
18
20
 
19
- export function prepareContactsPayload(data: ContactsPayload): IInforuContact[] {
21
+ export function prepareContactsPayload(data: ContactsPayload, groupName?: string): IInforuContact[] {
20
22
  if ("endUsers" in data && Array.isArray(data.endUsers) && data.endUsers.length) {
21
- return normalizeBetweenEndUserToContacts(data.endUsers);
23
+ return normalizeBetweenEndUserToContacts(data.endUsers, groupName);
22
24
  } else if ("endUser" in data) {
23
- return normalizeBetweenEndUserToContacts([data.endUser]);
25
+ return normalizeBetweenEndUserToContacts([data.endUser], groupName);
24
26
  }
25
27
  throw new CustomError("invalid_data_in_inforu_prepare_contacts", 400, `Invalid data ${JSON.stringify(data)}`);
26
28
  }