@zohoim/client-sdk 1.0.0-canned04 → 1.0.0-canned07

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 (35) hide show
  1. package/es/application/services/cannedMessages/CannedMessageService.js +21 -1
  2. package/es/application/services/templateMessages/TemplateMessageService.js +6 -1
  3. package/es/domain/dto/cannedMessages/addTranslationRequest.js +18 -0
  4. package/es/domain/dto/cannedMessages/deleteTranslationRequest.js +14 -0
  5. package/es/domain/dto/cannedMessages/getCannedPlaceholdersRequest.js +10 -0
  6. package/es/domain/dto/cannedMessages/index.js +5 -1
  7. package/es/domain/dto/cannedMessages/updateTranslationRequest.js +18 -0
  8. package/es/domain/dto/templateMessages/getTemplateTagsRequest.js +7 -0
  9. package/es/domain/dto/templateMessages/index.js +2 -1
  10. package/es/domain/entities/CannedMessage/CannedMessage.js +8 -2
  11. package/es/domain/entities/CannedMessage/Translation.js +29 -0
  12. package/es/domain/entities/CannedMessage/index.js +2 -1
  13. package/es/domain/entities/Placeholder/Placeholder.js +24 -0
  14. package/es/domain/entities/Placeholder/index.js +2 -0
  15. package/es/domain/entities/index.js +2 -1
  16. package/es/domain/interfaces/repositories/cannedMessages/ICannedMessageRepository.js +21 -1
  17. package/es/domain/interfaces/repositories/templateMessages/ITemplateMessageRepository.js +7 -1
  18. package/es/domain/schema/cannedMessage/TranslationsSchema.js +1 -1
  19. package/es/domain/schema/cannedMessage/index.js +2 -1
  20. package/es/domain/schema/index.js +2 -1
  21. package/es/domain/schema/placeholder/PlaceholderSchema.js +19 -0
  22. package/es/domain/schema/placeholder/index.js +2 -0
  23. package/es/infrastructure/adapters/cannedMessages/CannedMessageAdapter.js +3 -2
  24. package/es/infrastructure/adapters/cannedMessages/TranslationAdapter.js +27 -0
  25. package/es/infrastructure/adapters/cannedMessages/index.js +2 -1
  26. package/es/infrastructure/adapters/index.js +2 -1
  27. package/es/infrastructure/adapters/placeholders/PlaceholderAdapter.js +22 -0
  28. package/es/infrastructure/adapters/placeholders/index.js +2 -0
  29. package/es/infrastructure/api/cannedMessages/CannedMessageAPI.js +41 -1
  30. package/es/infrastructure/api/registry/cannedMessages/cannedMessageAPIRegistry.js +22 -2
  31. package/es/infrastructure/api/registry/templateMessages/templateMessageAPIRegistry.js +7 -2
  32. package/es/infrastructure/api/templateMessages/TemplateMessageAPI.js +11 -1
  33. package/es/infrastructure/repositories/cannedMessages/CannedMessageRepository.js +43 -3
  34. package/es/infrastructure/repositories/templateMessages/TemplateMessageRepository.js +10 -1
  35. package/package.json +1 -1
@@ -36,6 +36,22 @@ export default class CannedMessageService extends ICannedMessageRepository {
36
36
  return this.cannedMessageRepository.disableCannedMessage(request);
37
37
  }
38
38
 
39
+ async addTranslation(request) {
40
+ return this.cannedMessageRepository.addTranslation(request);
41
+ }
42
+
43
+ async updateTranslation(request) {
44
+ return this.cannedMessageRepository.updateTranslation(request);
45
+ }
46
+
47
+ async deleteTranslation(request) {
48
+ return this.cannedMessageRepository.deleteTranslation(request);
49
+ }
50
+
51
+ async getCannedPlaceholders(request) {
52
+ return this.cannedMessageRepository.getCannedPlaceholders(request);
53
+ }
54
+
39
55
  toJSON() {
40
56
  return {
41
57
  getCannedMessages: this.getCannedMessages.bind(this),
@@ -44,7 +60,11 @@ export default class CannedMessageService extends ICannedMessageRepository {
44
60
  deleteCannedMessage: this.deleteCannedMessage.bind(this),
45
61
  updateCannedMessage: this.updateCannedMessage.bind(this),
46
62
  enableCannedMessage: this.enableCannedMessage.bind(this),
47
- disableCannedMessage: this.disableCannedMessage.bind(this)
63
+ disableCannedMessage: this.disableCannedMessage.bind(this),
64
+ addTranslation: this.addTranslation.bind(this),
65
+ updateTranslation: this.updateTranslation.bind(this),
66
+ deleteTranslation: this.deleteTranslation.bind(this),
67
+ getCannedPlaceholders: this.getCannedPlaceholders.bind(this)
48
68
  };
49
69
  }
50
70
 
@@ -16,10 +16,15 @@ export default class TemplateMessageService extends ITemplateMessageRepository {
16
16
  return this.templateMessageRepository.getWhatsAppTemplateCreditExhaustStatus(request);
17
17
  }
18
18
 
19
+ async getTemplateTags() {
20
+ return this.templateMessageRepository.getTemplateTags();
21
+ }
22
+
19
23
  toJSON() {
20
24
  return {
21
25
  getTemplateLanguages: this.getTemplateLanguages.bind(this),
22
- getWhatsAppTemplateCreditExhaustStatus: this.getWhatsAppTemplateCreditExhaustStatus.bind(this)
26
+ getWhatsAppTemplateCreditExhaustStatus: this.getWhatsAppTemplateCreditExhaustStatus.bind(this),
27
+ getTemplateTags: this.getTemplateTags.bind(this)
23
28
  };
24
29
  }
25
30
 
@@ -0,0 +1,18 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function addTranslationRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ cannedMessageId: null,
10
+ translationId: null,
11
+ ...params
12
+ }).withBody({
13
+ message: null,
14
+ ...body
15
+ }).build();
16
+ }
17
+
18
+ export default addTranslationRequest;
@@ -0,0 +1,14 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function deleteTranslationRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ cannedMessageId: null,
9
+ translationId: null,
10
+ ...params
11
+ }).build();
12
+ }
13
+
14
+ export default deleteTranslationRequest;
@@ -0,0 +1,10 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getCannedPlaceholdersRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams(params).build();
8
+ }
9
+
10
+ export default getCannedPlaceholdersRequest;
@@ -4,4 +4,8 @@ export { default as deleteCannedMessageRequest } from './deleteCannedMessageRequ
4
4
  export { default as createCannedMessageRequest } from './createCannedMessageRequest';
5
5
  export { default as enableCannedMessageRequest } from './enableCannedMessageRequest';
6
6
  export { default as disableCannedMessageRequest } from './disableCannedMessageRequest';
7
- export { default as updateCannedMessageRequest } from './updateCannedMessageRequest';
7
+ export { default as updateCannedMessageRequest } from './updateCannedMessageRequest';
8
+ export { default as addTranslationRequest } from './addTranslationRequest';
9
+ export { default as updateTranslationRequest } from './updateTranslationRequest';
10
+ export { default as deleteTranslationRequest } from './deleteTranslationRequest';
11
+ export { default as getCannedPlaceholdersRequest } from './getCannedPlaceholdersRequest';
@@ -0,0 +1,18 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function updateTranslationRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ cannedMessageId: null,
10
+ translationId: null,
11
+ ...params
12
+ }).withBody({
13
+ message: null,
14
+ ...body
15
+ }).build();
16
+ }
17
+
18
+ export default updateTranslationRequest;
@@ -0,0 +1,7 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getTemplateTagsRequest() {
4
+ return new RequestBuilder().build();
5
+ }
6
+
7
+ export default getTemplateTagsRequest;
@@ -1,2 +1,3 @@
1
1
  export { default as getTemplateLanguagesRequest } from './getTemplateLanguagesRequest';
2
- export { default as getTemplateCreditExhaustStatusRequest } from './getTemplateCreditExhaustStatusRequest';
2
+ export { default as getTemplateCreditExhaustStatusRequest } from './getTemplateCreditExhaustStatusRequest';
3
+ export { default as getTemplateTagsRequest } from './getTemplateTagsRequest';
@@ -2,6 +2,7 @@ import { validateSchema } from '../../../core/utils';
2
2
  import { CannedMessageStatus, CannedMessageType } from '../../enum';
3
3
  import { CannedMessageSchema } from '../../schema';
4
4
  import { Actor } from '../Actor';
5
+ import Translation from './Translation';
5
6
  export default class CannedMessage {
6
7
  constructor() {
7
8
  let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -11,13 +12,18 @@ export default class CannedMessage {
11
12
  entityName: 'CannedMessage'
12
13
  });
13
14
  let {
14
- createdBy
15
+ createdBy,
16
+ translations
15
17
  } = validatedData;
16
18
 
17
19
  if (createdBy && typeof createdBy === 'object' && !Array.isArray(createdBy)) {
18
20
  createdBy = new Actor(createdBy).toJSON();
19
21
  }
20
22
 
23
+ if (Array.isArray(translations)) {
24
+ translations = translations.map(item => new Translation(item).toJSON());
25
+ }
26
+
21
27
  this.data = {
22
28
  id: validatedData.id,
23
29
  title: validatedData.title,
@@ -33,7 +39,7 @@ export default class CannedMessage {
33
39
  isPrivate: validatedData.isPrivate,
34
40
  rejectionReason: validatedData.rejectionReason,
35
41
  modifiedTime: validatedData.modifiedTime,
36
- translations: validatedData.translations,
42
+ translations,
37
43
  parameters: validatedData.parameters,
38
44
  primaryLanguage: validatedData.primaryLanguage,
39
45
  wabaId: validatedData.wabaId
@@ -0,0 +1,29 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import TranslationsSchema from '../../schema/cannedMessage/TranslationsSchema';
3
+ export default class Translation {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema({
7
+ schema: TranslationsSchema,
8
+ data,
9
+ entityName: 'Translation'
10
+ });
11
+ this.data = {
12
+ id: validatedData.id,
13
+ language: validatedData.language,
14
+ message: validatedData.message,
15
+ displayMessage: validatedData.displayMessage,
16
+ uuid: validatedData.uuid,
17
+ status: validatedData.status,
18
+ modifiedTime: validatedData.modifiedTime,
19
+ failedReason: validatedData.failedReason,
20
+ templateItems: validatedData.templateItems
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return { ...this.data
26
+ };
27
+ }
28
+
29
+ }
@@ -1,2 +1,3 @@
1
1
  import CannedMessage from './CannedMessage';
2
- export { CannedMessage };
2
+ import Translation from './Translation';
3
+ export { CannedMessage, Translation };
@@ -0,0 +1,24 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { PlaceholderSchema } from '../../schema/placeholder';
3
+ export default class Placeholder {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema({
7
+ schema: PlaceholderSchema,
8
+ data,
9
+ entityName: 'Placeholder'
10
+ });
11
+ this.data = {
12
+ apiName: validatedData.apiName,
13
+ i18nFieldLabel: validatedData.i18nFieldLabel,
14
+ fieldLabel: validatedData.fieldLabel,
15
+ placeHolder: validatedData.placeHolder
16
+ };
17
+ }
18
+
19
+ toJSON() {
20
+ return { ...this.data
21
+ };
22
+ }
23
+
24
+ }
@@ -0,0 +1,2 @@
1
+ import Placeholder from './Placeholder';
2
+ export { Placeholder };
@@ -9,4 +9,5 @@ export * from './Contact';
9
9
  export * from './IntegrationService';
10
10
  export * from './CannedMessage';
11
11
  export * from './TemplateMessage';
12
- export * from './CustomReplyExtension';
12
+ export * from './CustomReplyExtension';
13
+ export * from './Placeholder';
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-unused-vars */
2
2
  import { ModuleNames } from '../../../../core/constants';
3
3
  import BaseAPI from '../../../../infrastructure/api/BaseAPI';
4
- import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, disableCannedMessageRequest, enableCannedMessageRequest } from '../../../dto';
4
+ import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, disableCannedMessageRequest, enableCannedMessageRequest, addTranslationRequest, updateTranslationRequest, deleteTranslationRequest, getCannedPlaceholdersRequest } from '../../../dto';
5
5
  export default class ICannedMessageRepository extends BaseAPI {
6
6
  constructor() {
7
7
  super({
@@ -44,4 +44,24 @@ export default class ICannedMessageRepository extends BaseAPI {
44
44
  throw new Error('Method not implemented.');
45
45
  }
46
46
 
47
+ addTranslation() {
48
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : addTranslationRequest();
49
+ throw new Error('Method not implemented.');
50
+ }
51
+
52
+ updateTranslation() {
53
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateTranslationRequest();
54
+ throw new Error('Method not implemented.');
55
+ }
56
+
57
+ deleteTranslation() {
58
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : deleteTranslationRequest();
59
+ throw new Error('Method not implemented.');
60
+ }
61
+
62
+ getCannedPlaceholders() {
63
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCannedPlaceholdersRequest();
64
+ throw new Error('Method not implemented.');
65
+ }
66
+
47
67
  }
@@ -1,6 +1,7 @@
1
+ /* eslint-disable no-unused-vars */
1
2
  import { ModuleNames } from '../../../../core/constants';
2
3
  import BaseAPI from '../../../../infrastructure/api/BaseAPI';
3
- import { getTemplateCreditExhaustStatusRequest, getTemplateLanguagesRequest } from '../../../dto';
4
+ import { getTemplateCreditExhaustStatusRequest, getTemplateLanguagesRequest, getTemplateTagsRequest } from '../../../dto';
4
5
  export default class ITemplateMessageRepository extends BaseAPI {
5
6
  constructor() {
6
7
  super({
@@ -18,4 +19,9 @@ export default class ITemplateMessageRepository extends BaseAPI {
18
19
  throw new Error('Method not implemented');
19
20
  }
20
21
 
22
+ async getTemplateTags() {
23
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getTemplateTagsRequest();
24
+ throw new Error('Method not implemented');
25
+ }
26
+
21
27
  }
@@ -31,7 +31,7 @@ const TranslationsSchema = {
31
31
  },
32
32
  status: {
33
33
  type: 'string',
34
- required: true,
34
+ required: false,
35
35
  enum: Object.values(CannedMessageStatus)
36
36
  },
37
37
  templateItems: {
@@ -1,2 +1,3 @@
1
1
  import CannedMessageSchema from './CannedMessageSchema';
2
- export { CannedMessageSchema };
2
+ import TranslationsSchema from './TranslationsSchema';
3
+ export { CannedMessageSchema, TranslationsSchema };
@@ -8,4 +8,5 @@ export * from './integrationService';
8
8
  export * from './contact';
9
9
  export * from './cannedMessage';
10
10
  export * from './templateMessage';
11
- export * from './customReplyExtension';
11
+ export * from './customReplyExtension';
12
+ export * from './placeholder';
@@ -0,0 +1,19 @@
1
+ const PlaceholderSchema = {
2
+ apiName: {
3
+ type: 'string',
4
+ required: false
5
+ },
6
+ i18nFieldLabel: {
7
+ type: 'string',
8
+ required: true
9
+ },
10
+ fieldLabel: {
11
+ type: 'string',
12
+ required: true
13
+ },
14
+ placeHolder: {
15
+ type: 'string',
16
+ required: true
17
+ }
18
+ };
19
+ export default PlaceholderSchema;
@@ -0,0 +1,2 @@
1
+ import PlaceholderSchema from './PlaceholderSchema';
2
+ export { PlaceholderSchema };
@@ -1,5 +1,5 @@
1
1
  import { AdapterError } from '../../../core/errors';
2
- import { CannedMessage } from '../../../domain/entities';
2
+ import { CannedMessage, Translation } from '../../../domain/entities';
3
3
  import { IAdapter } from '../../../domain/interfaces';
4
4
  export default class CannedMessageAdapter extends IAdapter {
5
5
  adapt(cannedMessageData) {
@@ -8,6 +8,7 @@ export default class CannedMessageAdapter extends IAdapter {
8
8
  }
9
9
 
10
10
  try {
11
+ const translations = Array.isArray(cannedMessageData.translations) ? cannedMessageData.translations.map(translation => new Translation(translation).toJSON()) : cannedMessageData.translations;
11
12
  return new CannedMessage({
12
13
  id: cannedMessageData.id,
13
14
  title: cannedMessageData.title,
@@ -19,7 +20,7 @@ export default class CannedMessageAdapter extends IAdapter {
19
20
  createdBy: cannedMessageData.createdBy,
20
21
  isActive: cannedMessageData.isActive,
21
22
  isPrivate: cannedMessageData.isPrivate,
22
- translations: cannedMessageData.translations,
23
+ translations,
23
24
  uuid: cannedMessageData.uuid,
24
25
  meta: cannedMessageData.meta,
25
26
  rejectedReason: cannedMessageData.rejectedReason,
@@ -0,0 +1,27 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Translation } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class TranslationAdapter extends IAdapter {
5
+ adapt(translationData) {
6
+ if (!translationData) {
7
+ throw new AdapterError('Translation data is required');
8
+ }
9
+
10
+ try {
11
+ return new Translation({
12
+ id: translationData.id,
13
+ language: translationData.language,
14
+ message: translationData.message,
15
+ displayMessage: translationData.displayMessage,
16
+ uuid: translationData.uuid,
17
+ status: translationData.status,
18
+ modifiedTime: translationData.modifiedTime,
19
+ failedReason: translationData.failedReason,
20
+ templateItems: translationData.templateItems
21
+ }).toJSON();
22
+ } catch (error) {
23
+ throw new AdapterError(`Failed to adapt translation: ${error.message}`);
24
+ }
25
+ }
26
+
27
+ }
@@ -1,2 +1,3 @@
1
1
  import CannedMessageAdapter from './CannedMessageAdapter';
2
- export { CannedMessageAdapter };
2
+ import TranslationAdapter from './TranslationAdapter';
3
+ export { CannedMessageAdapter, TranslationAdapter };
@@ -7,4 +7,5 @@ export * from './agents';
7
7
  export * from './contacts';
8
8
  export * from './cannedMessages';
9
9
  export * from './templateMessages';
10
- export * from './customReplyExtension';
10
+ export * from './customReplyExtension';
11
+ export * from './placeholders';
@@ -0,0 +1,22 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Placeholder } from '../../../domain/entities/Placeholder';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class PlaceholderAdapter extends IAdapter {
5
+ adapt(placeholderData) {
6
+ if (!placeholderData) {
7
+ throw new AdapterError('Placeholder data is required');
8
+ }
9
+
10
+ try {
11
+ return new Placeholder({
12
+ apiName: placeholderData.apiName,
13
+ i18nFieldLabel: placeholderData.i18nFieldLabel,
14
+ fieldLabel: placeholderData.fieldLabel,
15
+ placeHolder: placeholderData.placeHolder
16
+ }).toJSON();
17
+ } catch (error) {
18
+ throw new AdapterError(`Failed to adapt placeholder: ${error.message}`);
19
+ }
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import PlaceholderAdapter from './PlaceholderAdapter';
2
+ export { PlaceholderAdapter };
@@ -1,4 +1,4 @@
1
- import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest } from '../../../domain/dto';
1
+ import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest, addTranslationRequest, updateTranslationRequest, deleteTranslationRequest, getCannedPlaceholdersRequest } from '../../../domain/dto';
2
2
  import { ICannedMessageRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class CannedMessageAPI extends ICannedMessageRepository {
4
4
  async getCannedMessages() {
@@ -71,4 +71,44 @@ export default class CannedMessageAPI extends ICannedMessageRepository {
71
71
  return httpRequest;
72
72
  }
73
73
 
74
+ async addTranslation() {
75
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : addTranslationRequest();
76
+ const operation = 'addTranslation';
77
+ const httpRequest = await this.request({
78
+ operation,
79
+ request
80
+ });
81
+ return httpRequest;
82
+ }
83
+
84
+ async updateTranslation() {
85
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateTranslationRequest();
86
+ const operation = 'updateTranslation';
87
+ const httpRequest = await this.request({
88
+ operation,
89
+ request
90
+ });
91
+ return httpRequest;
92
+ }
93
+
94
+ async deleteTranslation() {
95
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : deleteTranslationRequest();
96
+ const operation = 'deleteTranslation';
97
+ const httpRequest = await this.request({
98
+ operation,
99
+ request
100
+ });
101
+ return httpRequest;
102
+ }
103
+
104
+ async getCannedPlaceholders() {
105
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCannedPlaceholdersRequest();
106
+ const operation = 'getCannedPlaceholders';
107
+ const httpRequest = await this.request({
108
+ operation,
109
+ request
110
+ });
111
+ return httpRequest;
112
+ }
113
+
74
114
  }
@@ -1,5 +1,5 @@
1
1
  import { HTTP_METHODS } from '../../../../core/constants';
2
- import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest } from '../../../../domain/dto';
2
+ import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest, addTranslationRequest, updateTranslationRequest, deleteTranslationRequest, getCannedPlaceholdersRequest } from '../../../../domain/dto';
3
3
  import constructCannedMessageEndPoint from './constructCannedMessageEndPoint';
4
4
  import createAPIRegistry from '../createAPIRegistry';
5
5
 
@@ -31,6 +31,22 @@ function deleteCannedMessage() {
31
31
  return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId'), HTTP_METHODS.DELETE, deleteCannedMessageRequest());
32
32
  }
33
33
 
34
+ function addTranslation() {
35
+ return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId/translations'), HTTP_METHODS.POST, addTranslationRequest());
36
+ }
37
+
38
+ function updateTranslation() {
39
+ return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId/translations/:translationId'), HTTP_METHODS.PATCH, updateTranslationRequest());
40
+ }
41
+
42
+ function deleteTranslation() {
43
+ return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId/translations/:translationId'), HTTP_METHODS.DELETE, deleteTranslationRequest());
44
+ }
45
+
46
+ function getCannedPlaceholders() {
47
+ return createAPIRegistry(constructCannedMessageEndPoint('/placeholders'), HTTP_METHODS.GET, getCannedPlaceholdersRequest());
48
+ }
49
+
34
50
  export default {
35
51
  getCannedMessage,
36
52
  getCannedMessages,
@@ -38,5 +54,9 @@ export default {
38
54
  updateCannedMessage,
39
55
  deleteCannedMessage,
40
56
  enableCannedMessage,
41
- disableCannedMessage
57
+ disableCannedMessage,
58
+ addTranslation,
59
+ updateTranslation,
60
+ deleteTranslation,
61
+ getCannedPlaceholders
42
62
  };
@@ -1,5 +1,5 @@
1
1
  import { HTTP_METHODS } from '../../../../core/constants';
2
- import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest } from '../../../../domain/dto';
2
+ import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest, getTemplateTagsRequest } from '../../../../domain/dto';
3
3
  import createAPIRegistry from '../createAPIRegistry';
4
4
  import constructTemplateMessageEndPoint from './constructTemplateMessageEndPoint';
5
5
 
@@ -12,7 +12,12 @@ function getWhatsAppTemplateCreditExhaustStatus() {
12
12
  HTTP_METHODS.POST, getTemplateCreditExhaustStatusRequest());
13
13
  }
14
14
 
15
+ function getTemplateTags() {
16
+ return createAPIRegistry(constructTemplateMessageEndPoint('/templateTags'), HTTP_METHODS.GET, getTemplateTagsRequest());
17
+ }
18
+
15
19
  export default {
16
20
  getTemplateLanguages,
17
- getWhatsAppTemplateCreditExhaustStatus
21
+ getWhatsAppTemplateCreditExhaustStatus,
22
+ getTemplateTags
18
23
  };
@@ -1,4 +1,4 @@
1
- import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest } from '../../../domain/dto';
1
+ import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest, getTemplateTagsRequest } from '../../../domain/dto';
2
2
  import { ITemplateMessageRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class TemplateMessageAPI extends ITemplateMessageRepository {
4
4
  async getTemplateLanguages() {
@@ -21,4 +21,14 @@ export default class TemplateMessageAPI extends ITemplateMessageRepository {
21
21
  return httpRequest;
22
22
  }
23
23
 
24
+ async getTemplateTags() {
25
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getTemplateTagsRequest();
26
+ const operation = 'getTemplateTags';
27
+ const httpRequest = await this.request({
28
+ request,
29
+ operation
30
+ });
31
+ return httpRequest;
32
+ }
33
+
24
34
  }
@@ -1,4 +1,4 @@
1
- import { CannedMessageAdapter } from '../../adapters';
1
+ import { CannedMessageAdapter, PlaceholderAdapter, TranslationAdapter } from '../../adapters';
2
2
  import { CannedMessageAPI } from '../../api';
3
3
  import { ICannedMessageRepository } from '../../../domain/interfaces/repositories/cannedMessages';
4
4
  import { ResponseTypes } from '../../../core/constants';
@@ -6,13 +6,16 @@ export default class CannedMessageRepository extends ICannedMessageRepository {
6
6
  constructor(_ref) {
7
7
  let {
8
8
  cannedMessageAPI,
9
- cannedMessageAdapter
9
+ cannedMessageAdapter,
10
+ placeholderAdapter
10
11
  } = _ref;
11
12
  super();
12
13
  this.defaultAPI = new CannedMessageAPI();
13
14
  this.customAPI = cannedMessageAPI;
14
15
  this.cannedMessageAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
16
  this.cannedMessageAdapter = cannedMessageAdapter || new CannedMessageAdapter();
17
+ this.translationAdapter = new TranslationAdapter();
18
+ this.placeholderAdapter = placeholderAdapter || new PlaceholderAdapter();
16
19
  }
17
20
 
18
21
  async invokeAPI(_ref2) {
@@ -85,6 +88,39 @@ export default class CannedMessageRepository extends ICannedMessageRepository {
85
88
  });
86
89
  }
87
90
 
91
+ async addTranslation(request) {
92
+ return this.invokeAPI({
93
+ operation: 'addTranslation',
94
+ request,
95
+ adapter: this.translationAdapter
96
+ });
97
+ }
98
+
99
+ async updateTranslation(request) {
100
+ return this.invokeAPI({
101
+ operation: 'updateTranslation',
102
+ request,
103
+ adapter: this.translationAdapter
104
+ });
105
+ }
106
+
107
+ async deleteTranslation(request) {
108
+ return this.invokeAPI({
109
+ operation: 'deleteTranslation',
110
+ request,
111
+ responseType: ResponseTypes.NONE
112
+ });
113
+ }
114
+
115
+ async getCannedPlaceholders(request) {
116
+ return this.invokeAPI({
117
+ operation: 'getCannedPlaceholders',
118
+ request,
119
+ adapter: this.placeholderAdapter,
120
+ responseType: ResponseTypes.LIST
121
+ });
122
+ }
123
+
88
124
  toJSON() {
89
125
  return {
90
126
  getCannedMessages: this.getCannedMessages.bind(this),
@@ -93,7 +129,11 @@ export default class CannedMessageRepository extends ICannedMessageRepository {
93
129
  updateCannedMessage: this.updateCannedMessage.bind(this),
94
130
  deleteCannedMessage: this.deleteCannedMessage.bind(this),
95
131
  enableCannedMessage: this.enableCannedMessage.bind(this),
96
- disableCannedMessage: this.disableCannedMessage.bind(this)
132
+ disableCannedMessage: this.disableCannedMessage.bind(this),
133
+ addTranslation: this.addTranslation.bind(this),
134
+ updateTranslation: this.updateTranslation.bind(this),
135
+ deleteTranslation: this.deleteTranslation.bind(this),
136
+ getCannedPlaceholders: this.getCannedPlaceholders.bind(this)
97
137
  };
98
138
  }
99
139
 
@@ -67,10 +67,19 @@ export default class TemplateMessageRepository extends ITemplateMessageRepositor
67
67
  });
68
68
  }
69
69
 
70
+ async getTemplateTags(request) {
71
+ return this.invokeTemplateLanguageAPI({
72
+ operation: 'getTemplateTags',
73
+ request,
74
+ adapter: null
75
+ });
76
+ }
77
+
70
78
  toJSON() {
71
79
  return {
72
80
  getTemplateLanguages: this.getTemplateLanguages.bind(this),
73
- getWhatsAppTemplateCreditExhaustStatus: this.getWhatsAppTemplateCreditExhaustStatus.bind(this)
81
+ getWhatsAppTemplateCreditExhaustStatus: this.getWhatsAppTemplateCreditExhaustStatus.bind(this),
82
+ getTemplateTags: this.getTemplateTags.bind(this)
74
83
  };
75
84
  }
76
85
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohoim/client-sdk",
3
- "version": "1.0.0-canned04",
3
+ "version": "1.0.0-canned07",
4
4
  "description": "To have the client sdk for the IM",
5
5
  "main": "es/index.js",
6
6
  "module": "es/index.js",