smartling-api-sdk-nodejs 3.2.3 → 3.3.0

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 (144) hide show
  1. package/.env.example +13 -0
  2. package/api/base/base-api.ts +2 -1
  3. package/api/glossaries/dto/custom-field-value-dto.ts +6 -0
  4. package/api/glossaries/dto/entry-request-translation-status-dto.ts +7 -0
  5. package/api/glossaries/dto/glossary-entries-count-dto.ts +5 -0
  6. package/api/glossaries/dto/glossary-entry-dto.ts +23 -0
  7. package/api/glossaries/dto/glossary-import-result-dto.ts +11 -0
  8. package/api/glossaries/dto/glossary-import-status-dto.ts +7 -0
  9. package/api/glossaries/dto/glossary-uids-dto.ts +3 -0
  10. package/api/glossaries/dto/import-entry-changes-dto.ts +6 -0
  11. package/api/glossaries/dto/import-entry-translation-changes-dto.ts +6 -0
  12. package/api/glossaries/dto/import-warning-dto.ts +4 -0
  13. package/api/glossaries/dto/label-dto.ts +4 -0
  14. package/api/glossaries/dto/locale-workflow-dto.ts +4 -0
  15. package/api/glossaries/dto/operation-dto.ts +3 -0
  16. package/api/glossaries/dto/translation-dto.ts +20 -0
  17. package/api/glossaries/dto/translation-request-status-dto.ts +5 -0
  18. package/api/glossaries/enums/import-file-media-type.ts +5 -0
  19. package/api/glossaries/enums/import-status.ts +6 -0
  20. package/api/glossaries/enums/index.ts +4 -0
  21. package/api/glossaries/enums/part-of-speech.ts +11 -0
  22. package/api/glossaries/enums/suggestion-status.ts +5 -0
  23. package/api/glossaries/index.ts +281 -0
  24. package/api/glossaries/params/archive-glossaries-parameters.ts +9 -0
  25. package/api/glossaries/params/authorize-entries-parameters.ts +37 -0
  26. package/api/glossaries/params/create-glossary-entry-parameters.ts +50 -0
  27. package/api/glossaries/params/create-glossary-parameters.ts +40 -0
  28. package/api/glossaries/params/create-label-parameters.ts +9 -0
  29. package/api/glossaries/params/entries-bulk-action-parameters.ts +149 -0
  30. package/api/glossaries/params/entries-bulk-labels-parameters.ts +123 -0
  31. package/api/glossaries/params/export-entries-parameters.ts +16 -48
  32. package/api/glossaries/params/initialize-import-parameters.ts +42 -0
  33. package/api/glossaries/params/search-glossary-counts-parameters.ts +41 -0
  34. package/api/glossaries/params/search-glossary-entries-parameters.ts +105 -0
  35. package/built/api/base/base-api.js +2 -1
  36. package/built/api/base/base-api.js.map +1 -1
  37. package/built/api/glossaries/dto/custom-field-value-dto.d.ts +6 -0
  38. package/built/api/glossaries/dto/custom-field-value-dto.js +3 -0
  39. package/built/api/glossaries/dto/custom-field-value-dto.js.map +1 -0
  40. package/built/api/glossaries/dto/entry-request-translation-status-dto.d.ts +6 -0
  41. package/built/api/glossaries/dto/entry-request-translation-status-dto.js +3 -0
  42. package/built/api/glossaries/dto/entry-request-translation-status-dto.js.map +1 -0
  43. package/built/api/glossaries/dto/glossary-entries-count-dto.d.ts +5 -0
  44. package/built/api/glossaries/dto/glossary-entries-count-dto.js +3 -0
  45. package/built/api/glossaries/dto/glossary-entries-count-dto.js.map +1 -0
  46. package/built/api/glossaries/dto/glossary-entry-dto.d.ts +22 -0
  47. package/built/api/glossaries/dto/glossary-entry-dto.js +3 -0
  48. package/built/api/glossaries/dto/glossary-entry-dto.js.map +1 -0
  49. package/built/api/glossaries/dto/glossary-import-result-dto.d.ts +10 -0
  50. package/built/api/glossaries/dto/glossary-import-result-dto.js +3 -0
  51. package/built/api/glossaries/dto/glossary-import-result-dto.js.map +1 -0
  52. package/built/api/glossaries/dto/glossary-import-status-dto.d.ts +6 -0
  53. package/built/api/glossaries/dto/glossary-import-status-dto.js +3 -0
  54. package/built/api/glossaries/dto/glossary-import-status-dto.js.map +1 -0
  55. package/built/api/glossaries/dto/glossary-uids-dto.d.ts +3 -0
  56. package/built/api/glossaries/dto/glossary-uids-dto.js +3 -0
  57. package/built/api/glossaries/dto/glossary-uids-dto.js.map +1 -0
  58. package/built/api/glossaries/dto/import-entry-changes-dto.d.ts +6 -0
  59. package/built/api/glossaries/dto/import-entry-changes-dto.js +3 -0
  60. package/built/api/glossaries/dto/import-entry-changes-dto.js.map +1 -0
  61. package/built/api/glossaries/dto/import-entry-translation-changes-dto.d.ts +6 -0
  62. package/built/api/glossaries/dto/import-entry-translation-changes-dto.js +3 -0
  63. package/built/api/glossaries/dto/import-entry-translation-changes-dto.js.map +1 -0
  64. package/built/api/glossaries/dto/import-warning-dto.d.ts +4 -0
  65. package/built/api/glossaries/dto/import-warning-dto.js +3 -0
  66. package/built/api/glossaries/dto/import-warning-dto.js.map +1 -0
  67. package/built/api/glossaries/dto/label-dto.d.ts +4 -0
  68. package/built/api/glossaries/dto/label-dto.js +3 -0
  69. package/built/api/glossaries/dto/label-dto.js.map +1 -0
  70. package/built/api/glossaries/dto/locale-workflow-dto.d.ts +4 -0
  71. package/built/api/glossaries/dto/locale-workflow-dto.js +3 -0
  72. package/built/api/glossaries/dto/locale-workflow-dto.js.map +1 -0
  73. package/built/api/glossaries/dto/operation-dto.d.ts +3 -0
  74. package/built/api/glossaries/dto/operation-dto.js +3 -0
  75. package/built/api/glossaries/dto/operation-dto.js.map +1 -0
  76. package/built/api/glossaries/dto/translation-dto.d.ts +19 -0
  77. package/built/api/glossaries/dto/translation-dto.js +3 -0
  78. package/built/api/glossaries/dto/translation-dto.js.map +1 -0
  79. package/built/api/glossaries/dto/translation-request-status-dto.d.ts +5 -0
  80. package/built/api/glossaries/dto/translation-request-status-dto.js +3 -0
  81. package/built/api/glossaries/dto/translation-request-status-dto.js.map +1 -0
  82. package/built/api/glossaries/enums/import-file-media-type.d.ts +5 -0
  83. package/built/api/glossaries/enums/import-file-media-type.js +10 -0
  84. package/built/api/glossaries/enums/import-file-media-type.js.map +1 -0
  85. package/built/api/glossaries/enums/import-status.d.ts +6 -0
  86. package/built/api/glossaries/enums/import-status.js +11 -0
  87. package/built/api/glossaries/enums/import-status.js.map +1 -0
  88. package/built/api/glossaries/enums/index.d.ts +4 -0
  89. package/built/api/glossaries/enums/index.js +9 -1
  90. package/built/api/glossaries/enums/index.js.map +1 -1
  91. package/built/api/glossaries/enums/part-of-speech.d.ts +11 -0
  92. package/built/api/glossaries/enums/part-of-speech.js +16 -0
  93. package/built/api/glossaries/enums/part-of-speech.js.map +1 -0
  94. package/built/api/glossaries/enums/suggestion-status.d.ts +5 -0
  95. package/built/api/glossaries/enums/suggestion-status.js +10 -0
  96. package/built/api/glossaries/enums/suggestion-status.js.map +1 -0
  97. package/built/api/glossaries/index.d.ts +39 -0
  98. package/built/api/glossaries/index.js +127 -0
  99. package/built/api/glossaries/index.js.map +1 -1
  100. package/built/api/glossaries/params/archive-glossaries-parameters.d.ts +4 -0
  101. package/built/api/glossaries/params/archive-glossaries-parameters.js +12 -0
  102. package/built/api/glossaries/params/archive-glossaries-parameters.js.map +1 -0
  103. package/built/api/glossaries/params/authorize-entries-parameters.d.ts +10 -0
  104. package/built/api/glossaries/params/authorize-entries-parameters.js +28 -0
  105. package/built/api/glossaries/params/authorize-entries-parameters.js.map +1 -0
  106. package/built/api/glossaries/params/create-glossary-entry-parameters.d.ts +13 -0
  107. package/built/api/glossaries/params/create-glossary-entry-parameters.js +36 -0
  108. package/built/api/glossaries/params/create-glossary-entry-parameters.js.map +1 -0
  109. package/built/api/glossaries/params/create-glossary-parameters.d.ts +10 -0
  110. package/built/api/glossaries/params/create-glossary-parameters.js +32 -0
  111. package/built/api/glossaries/params/create-glossary-parameters.js.map +1 -0
  112. package/built/api/glossaries/params/create-label-parameters.d.ts +4 -0
  113. package/built/api/glossaries/params/create-label-parameters.js +12 -0
  114. package/built/api/glossaries/params/create-label-parameters.js.map +1 -0
  115. package/built/api/glossaries/params/entries-bulk-action-parameters.d.ts +28 -0
  116. package/built/api/glossaries/params/entries-bulk-action-parameters.js +112 -0
  117. package/built/api/glossaries/params/entries-bulk-action-parameters.js.map +1 -0
  118. package/built/api/glossaries/params/entries-bulk-labels-parameters.d.ts +29 -0
  119. package/built/api/glossaries/params/entries-bulk-labels-parameters.js +84 -0
  120. package/built/api/glossaries/params/entries-bulk-labels-parameters.js.map +1 -0
  121. package/built/api/glossaries/params/export-entries-parameters.js +16 -48
  122. package/built/api/glossaries/params/export-entries-parameters.js.map +1 -1
  123. package/built/api/glossaries/params/initialize-import-parameters.d.ts +12 -0
  124. package/built/api/glossaries/params/initialize-import-parameters.js +60 -0
  125. package/built/api/glossaries/params/initialize-import-parameters.js.map +1 -0
  126. package/built/api/glossaries/params/search-glossary-counts-parameters.d.ts +11 -0
  127. package/built/api/glossaries/params/search-glossary-counts-parameters.js +32 -0
  128. package/built/api/glossaries/params/search-glossary-counts-parameters.js.map +1 -0
  129. package/built/api/glossaries/params/search-glossary-entries-parameters.d.ts +25 -0
  130. package/built/api/glossaries/params/search-glossary-entries-parameters.js +72 -0
  131. package/built/api/glossaries/params/search-glossary-entries-parameters.js.map +1 -0
  132. package/built/index.d.ts +29 -0
  133. package/built/index.js +29 -0
  134. package/built/index.js.map +1 -1
  135. package/built/package.json +5 -3
  136. package/built/test/glossaries.spec.js +404 -0
  137. package/built/test/glossaries.spec.js.map +1 -1
  138. package/built/test/integration/glossaries.spec.d.ts +1 -0
  139. package/built/test/integration/glossaries.spec.js +222 -0
  140. package/built/test/integration/glossaries.spec.js.map +1 -0
  141. package/index.ts +29 -0
  142. package/package.json +5 -3
  143. package/test/glossaries.spec.ts +559 -0
  144. package/test/integration/glossaries.spec.ts +358 -0
package/.env.example ADDED
@@ -0,0 +1,13 @@
1
+ # Credentials for test/integration/glossaries.spec.ts.
2
+ # Copy this file to .env and fill in real values to run: npm run test:integration
3
+ # Without a real .env, the integration suite skips (shows as pending) rather than failing.
4
+
5
+ # Optional: override the Smartling API base URL (defaults to https://api.smartling.com)
6
+ # SMARTLING_API_BASE_URL=https://api.smartling.com
7
+
8
+ SMARTLING_ACCOUNT_UID=
9
+ SMARTLING_USER_ID=
10
+ SMARTLING_USER_SECRET=
11
+
12
+ # Optional: set to "true" to print every integration test's raw API response to the console.
13
+ SMARTLING_LOG_RESPONSES=false
@@ -166,7 +166,8 @@ export class SmartlingBaseApi {
166
166
  "lastModified",
167
167
  "attemptDate",
168
168
  "translationJobWorkflowStepDueDate",
169
- "translationJobOverallDueDate"
169
+ "translationJobOverallDueDate",
170
+ "requestDateTime"
170
171
  ];
171
172
 
172
173
  if (dateProperties.includes(key) && value) {
@@ -0,0 +1,6 @@
1
+ export interface CustomFieldValueDto {
2
+ fieldUid: string;
3
+ fieldValue: string;
4
+ fieldName?: string;
5
+ localeId?: string;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { TranslationRequestStatusDto } from "./translation-request-status-dto";
2
+
3
+ export interface EntryRequestTranslationStatusDto extends TranslationRequestStatusDto {
4
+ projectId: string;
5
+ hashCode: string;
6
+ jobUid: string;
7
+ }
@@ -0,0 +1,5 @@
1
+ export interface GlossaryEntriesCountDto {
2
+ glossaryUid: string;
3
+ entriesCount: number;
4
+ blocklistsCount: number;
5
+ }
@@ -0,0 +1,23 @@
1
+ import { PartOfSpeech } from "../enums/part-of-speech";
2
+ import { SuggestionStatus } from "../enums/suggestion-status";
3
+ import { GlossaryTranslationDto } from "./translation-dto";
4
+ import { CustomFieldValueDto } from "./custom-field-value-dto";
5
+ import { EntryRequestTranslationStatusDto } from "./entry-request-translation-status-dto";
6
+
7
+ export interface GlossaryEntryDto {
8
+ entryUid: string;
9
+ glossaryUid: string;
10
+ definition: string;
11
+ partOfSpeech?: PartOfSpeech;
12
+ labelUids: Array<string>;
13
+ translations: Array<GlossaryTranslationDto>;
14
+ customFieldValues: Array<CustomFieldValueDto>;
15
+ archived: boolean;
16
+ createdByUserUid: string;
17
+ modifiedByUserUid: string;
18
+ createdDate: Date;
19
+ modifiedDate: Date;
20
+ requestTranslationStatuses?: Record<string, EntryRequestTranslationStatusDto>;
21
+ mtOptimizedLabel?: string;
22
+ suggestionStatus?: SuggestionStatus;
23
+ }
@@ -0,0 +1,11 @@
1
+ import { GlossaryImportStatusDto } from "./glossary-import-status-dto";
2
+ import { ImportEntryChangesDto } from "./import-entry-changes-dto";
3
+ import { ImportEntryTranslationChangesDto } from "./import-entry-translation-changes-dto";
4
+ import { ImportWarningDto } from "./import-warning-dto";
5
+
6
+ export interface GlossaryImportResultDto {
7
+ glossaryImport: GlossaryImportStatusDto;
8
+ entryChanges: ImportEntryChangesDto;
9
+ translationChanges: Array<ImportEntryTranslationChangesDto>;
10
+ warnings: Array<ImportWarningDto>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { ImportStatus } from "../enums/import-status";
2
+
3
+ export interface GlossaryImportStatusDto {
4
+ glossaryUid: string;
5
+ importUid: string;
6
+ importStatus: ImportStatus;
7
+ }
@@ -0,0 +1,3 @@
1
+ export interface GlossaryUidsDto {
2
+ glossaryUids: Array<string>;
3
+ }
@@ -0,0 +1,6 @@
1
+ export interface ImportEntryChangesDto {
2
+ newEntries: number;
3
+ existingEntryUpdates: number;
4
+ notMatchedEntries: number;
5
+ entriesToArchive: number;
6
+ }
@@ -0,0 +1,6 @@
1
+ export interface ImportEntryTranslationChangesDto {
2
+ localeId: string;
3
+ newTranslations: number;
4
+ updatedTranslations: number;
5
+ translationsToRemove: number;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface ImportWarningDto {
2
+ key: string;
3
+ message: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export interface LabelDto {
2
+ labelUid: string;
3
+ labelText: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export interface GlossaryLocaleWorkflowDto {
2
+ localeId: string;
3
+ workflowUid: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface OperationDto {
2
+ operationUid: string;
3
+ }
@@ -0,0 +1,20 @@
1
+ import { CustomFieldValueDto } from "./custom-field-value-dto";
2
+ import { TranslationRequestStatusDto } from "./translation-request-status-dto";
3
+
4
+ export interface GlossaryTranslationDto {
5
+ localeId: string;
6
+ fallbackLocaleId?: string;
7
+ term: string;
8
+ notes?: string;
9
+ caseSensitive?: boolean;
10
+ exactMatch?: boolean;
11
+ doNotTranslate?: boolean;
12
+ disabled?: boolean;
13
+ variants?: Array<string>;
14
+ customFieldValues?: Array<CustomFieldValueDto>;
15
+ requestTranslationStatus?: TranslationRequestStatusDto;
16
+ createdByUserUid?: string;
17
+ modifiedByUserUid?: string;
18
+ createdDate?: Date;
19
+ modifiedDate?: Date;
20
+ }
@@ -0,0 +1,5 @@
1
+ export interface TranslationRequestStatusDto {
2
+ localeId: string;
3
+ requestDateTime: Date;
4
+ requestUserUid: string;
5
+ }
@@ -0,0 +1,5 @@
1
+ export enum ImportFileMediaType {
2
+ CSV = "text/csv",
3
+ XML = "text/xml",
4
+ XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
5
+ }
@@ -0,0 +1,6 @@
1
+ export enum ImportStatus {
2
+ PENDING = "PENDING",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ SUCCESSFUL = "SUCCESSFUL",
5
+ FAILED = "FAILED"
6
+ }
@@ -6,3 +6,7 @@ export { DateFilterType } from "./date-filter-type";
6
6
  export { LabelType } from "./label-type";
7
7
  export { SortDirection } from "./sort-direction";
8
8
  export { SortField } from "./sort-field";
9
+ export { PartOfSpeech } from "./part-of-speech";
10
+ export { SuggestionStatus } from "./suggestion-status";
11
+ export { ImportStatus } from "./import-status";
12
+ export { ImportFileMediaType } from "./import-file-media-type";
@@ -0,0 +1,11 @@
1
+ export enum PartOfSpeech {
2
+ NOUN = "NOUN",
3
+ VERB = "VERB",
4
+ ADJECTIVE = "ADJECTIVE",
5
+ ADVERB = "ADVERB",
6
+ PRONOUN = "PRONOUN",
7
+ PREPOSITION = "PREPOSITION",
8
+ INTERJECTION = "INTERJECTION",
9
+ CONJUNCTION = "CONJUNCTION",
10
+ PROPER_NOUN = "PROPER_NOUN"
11
+ }
@@ -0,0 +1,5 @@
1
+ export enum SuggestionStatus {
2
+ STANDARD = "STANDARD",
3
+ SUGGESTED = "SUGGESTED",
4
+ APPROVED = "APPROVED"
5
+ }
@@ -1,3 +1,5 @@
1
+ import FormData from "form-data";
2
+ import { fixContentTypeHeaderCase } from "../http/form-data-utils";
1
3
  import { SmartlingBaseApi } from "../base/index";
2
4
  import { AccessTokenProvider } from "../auth/access-token-provider";
3
5
  import { Logger } from "../logger";
@@ -6,6 +8,23 @@ import { SearchGlossariesParameters } from "./params/search-glossaries-parameter
6
8
  import { SmartlingListResponse } from "../http/smartling-list-response";
7
9
  import { ExportEntriesParameters } from "./params/export-entries-parameters";
8
10
  import { ResponseBodyType } from "../base/enum/response-body-type";
11
+ import { CreateGlossaryParameters } from "./params/create-glossary-parameters";
12
+ import { ArchiveGlossariesParameters } from "./params/archive-glossaries-parameters";
13
+ import { SearchGlossaryCountsParameters } from "./params/search-glossary-counts-parameters";
14
+ import { GlossaryUidsDto } from "./dto/glossary-uids-dto";
15
+ import { GlossaryEntriesCountDto } from "./dto/glossary-entries-count-dto";
16
+ import { CreateGlossaryEntryParameters } from "./params/create-glossary-entry-parameters";
17
+ import { SearchGlossaryEntriesParameters } from "./params/search-glossary-entries-parameters";
18
+ import { GlossaryEntryDto } from "./dto/glossary-entry-dto";
19
+ import { EntriesBulkActionParameters } from "./params/entries-bulk-action-parameters";
20
+ import { EntriesBulkLabelsParameters } from "./params/entries-bulk-labels-parameters";
21
+ import { OperationDto } from "./dto/operation-dto";
22
+ import { AuthorizeEntriesParameters } from "./params/authorize-entries-parameters";
23
+ import { InitializeImportParameters } from "./params/initialize-import-parameters";
24
+ import { GlossaryImportResultDto } from "./dto/glossary-import-result-dto";
25
+ import { GlossaryImportStatusDto } from "./dto/glossary-import-status-dto";
26
+ import { CreateLabelParameters } from "./params/create-label-parameters";
27
+ import { LabelDto } from "./dto/label-dto";
9
28
 
10
29
  export class SmartlingGlossariesApi extends SmartlingBaseApi {
11
30
  constructor(smartlingApiBaseUrl: string, authApi: AccessTokenProvider, logger: Logger) {
@@ -32,6 +51,268 @@ export class SmartlingGlossariesApi extends SmartlingBaseApi {
32
51
  );
33
52
  }
34
53
 
54
+ async createGlossary(
55
+ accountUid: string,
56
+ parameters: CreateGlossaryParameters
57
+ ): Promise<GlossaryDto> {
58
+ return await this.makeRequest(
59
+ "post",
60
+ `${this.entrypoint}/accounts/${accountUid}/glossaries`,
61
+ JSON.stringify(parameters.export())
62
+ );
63
+ }
64
+
65
+ async updateGlossary(
66
+ accountUid: string,
67
+ glossaryUid: string,
68
+ parameters: CreateGlossaryParameters
69
+ ): Promise<GlossaryDto> {
70
+ return await this.makeRequest(
71
+ "put",
72
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}`,
73
+ JSON.stringify(parameters.export())
74
+ );
75
+ }
76
+
77
+ async archiveGlossaries(
78
+ accountUid: string,
79
+ parameters: ArchiveGlossariesParameters
80
+ ): Promise<GlossaryUidsDto> {
81
+ return await this.makeRequest(
82
+ "post",
83
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/archive`,
84
+ JSON.stringify(parameters.export())
85
+ );
86
+ }
87
+
88
+ async restoreGlossaries(
89
+ accountUid: string,
90
+ parameters: ArchiveGlossariesParameters
91
+ ): Promise<GlossaryUidsDto> {
92
+ return await this.makeRequest(
93
+ "post",
94
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/unarchive`,
95
+ JSON.stringify(parameters.export())
96
+ );
97
+ }
98
+
99
+ async searchGlossariesWithEntriesCounts(
100
+ accountUid: string,
101
+ parameters: SearchGlossaryCountsParameters
102
+ ): Promise<SmartlingListResponse<GlossaryEntriesCountDto>> {
103
+ return await this.makeRequest(
104
+ "post",
105
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/search/count`,
106
+ JSON.stringify(parameters.export())
107
+ );
108
+ }
109
+
110
+ async createGlossaryEntry(
111
+ accountUid: string,
112
+ glossaryUid: string,
113
+ parameters: CreateGlossaryEntryParameters
114
+ ): Promise<GlossaryEntryDto> {
115
+ return await this.makeRequest(
116
+ "post",
117
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries`,
118
+ JSON.stringify(parameters.export())
119
+ );
120
+ }
121
+
122
+ async readGlossaryEntry(
123
+ accountUid: string,
124
+ glossaryUid: string,
125
+ entryUid: string
126
+ ): Promise<GlossaryEntryDto> {
127
+ return await this.makeRequest(
128
+ "get",
129
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/${entryUid}`
130
+ );
131
+ }
132
+
133
+ async updateGlossaryEntry(
134
+ accountUid: string,
135
+ glossaryUid: string,
136
+ entryUid: string,
137
+ parameters: CreateGlossaryEntryParameters
138
+ ): Promise<GlossaryEntryDto> {
139
+ return await this.makeRequest(
140
+ "put",
141
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/${entryUid}`,
142
+ JSON.stringify(parameters.export())
143
+ );
144
+ }
145
+
146
+ async searchGlossaryEntries(
147
+ accountUid: string,
148
+ glossaryUid: string,
149
+ parameters: SearchGlossaryEntriesParameters
150
+ ): Promise<SmartlingListResponse<GlossaryEntryDto>> {
151
+ return await this.makeRequest(
152
+ "post",
153
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/search`,
154
+ JSON.stringify(parameters.export())
155
+ );
156
+ }
157
+
158
+ async archiveGlossaryEntries(
159
+ accountUid: string,
160
+ glossaryUid: string,
161
+ parameters: EntriesBulkActionParameters
162
+ ): Promise<OperationDto> {
163
+ return await this.makeRequest(
164
+ "post",
165
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/archive`,
166
+ JSON.stringify(parameters.export())
167
+ );
168
+ }
169
+
170
+ async restoreGlossaryEntries(
171
+ accountUid: string,
172
+ glossaryUid: string,
173
+ parameters: EntriesBulkActionParameters
174
+ ): Promise<OperationDto> {
175
+ return await this.makeRequest(
176
+ "post",
177
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/unarchive`,
178
+ JSON.stringify(parameters.export())
179
+ );
180
+ }
181
+
182
+ async removeGlossaryEntries(
183
+ accountUid: string,
184
+ glossaryUid: string,
185
+ parameters: EntriesBulkActionParameters
186
+ ): Promise<OperationDto> {
187
+ return await this.makeRequest(
188
+ "post",
189
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/delete`,
190
+ JSON.stringify(parameters.export())
191
+ );
192
+ }
193
+
194
+ async addLabelsToGlossaryEntries(
195
+ accountUid: string,
196
+ glossaryUid: string,
197
+ parameters: EntriesBulkLabelsParameters
198
+ ): Promise<OperationDto> {
199
+ return await this.makeRequest(
200
+ "post",
201
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/add-labels`,
202
+ JSON.stringify(parameters.export())
203
+ );
204
+ }
205
+
206
+ async removeLabelsFromGlossaryEntries(
207
+ accountUid: string,
208
+ glossaryUid: string,
209
+ parameters: EntriesBulkLabelsParameters
210
+ ): Promise<OperationDto> {
211
+ return await this.makeRequest(
212
+ "post",
213
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/remove-labels`,
214
+ JSON.stringify(parameters.export())
215
+ );
216
+ }
217
+
218
+ async authorizeEntriesForTranslation(
219
+ accountUid: string,
220
+ glossaryUid: string,
221
+ parameters: AuthorizeEntriesParameters
222
+ ): Promise<OperationDto> {
223
+ return await this.makeRequest(
224
+ "post",
225
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/entries/authorization`,
226
+ JSON.stringify(parameters.export())
227
+ );
228
+ }
229
+
230
+ async initializeGlossaryImport(
231
+ accountUid: string,
232
+ glossaryUid: string,
233
+ parameters: InitializeImportParameters
234
+ ): Promise<GlossaryImportResultDto> {
235
+ const exported = parameters.export();
236
+ const formData = new FormData();
237
+
238
+ Object.keys(exported).forEach((key) => {
239
+ if (Array.isArray(exported[key])) {
240
+ exported[key].forEach((value) => {
241
+ formData.append(`${key}[]`, value);
242
+ });
243
+ } else {
244
+ formData.append(key, exported[key]);
245
+ }
246
+ });
247
+
248
+ return await this.makeRequest(
249
+ "post",
250
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/import`,
251
+ formData,
252
+ false,
253
+ fixContentTypeHeaderCase(formData)
254
+ );
255
+ }
256
+
257
+ async importStatus(
258
+ accountUid: string,
259
+ glossaryUid: string,
260
+ importUid: string
261
+ ): Promise<GlossaryImportStatusDto> {
262
+ return await this.makeRequest(
263
+ "get",
264
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/import/${importUid}`
265
+ );
266
+ }
267
+
268
+ async confirmGlossaryImport(
269
+ accountUid: string,
270
+ glossaryUid: string,
271
+ importUid: string
272
+ ): Promise<GlossaryImportStatusDto> {
273
+ return await this.makeRequest(
274
+ "post",
275
+ `${this.entrypoint}/accounts/${accountUid}/glossaries/${glossaryUid}/import/${importUid}/confirm`
276
+ );
277
+ }
278
+
279
+ async readAllGlossaryLabels(accountUid: string): Promise<SmartlingListResponse<LabelDto>> {
280
+ return await this.makeRequest(
281
+ "get",
282
+ `${this.entrypoint}/accounts/${accountUid}/labels`
283
+ );
284
+ }
285
+
286
+ async createGlossaryLabel(
287
+ accountUid: string,
288
+ parameters: CreateLabelParameters
289
+ ): Promise<LabelDto> {
290
+ return await this.makeRequest(
291
+ "post",
292
+ `${this.entrypoint}/accounts/${accountUid}/labels`,
293
+ JSON.stringify(parameters.export())
294
+ );
295
+ }
296
+
297
+ async updateGlossaryLabel(
298
+ accountUid: string,
299
+ labelUid: string,
300
+ parameters: CreateLabelParameters
301
+ ): Promise<LabelDto> {
302
+ return await this.makeRequest(
303
+ "put",
304
+ `${this.entrypoint}/accounts/${accountUid}/labels/${labelUid}`,
305
+ JSON.stringify(parameters.export())
306
+ );
307
+ }
308
+
309
+ async deleteGlossaryLabel(accountUid: string, labelUid: string): Promise<void> {
310
+ await this.makeRequest(
311
+ "delete",
312
+ `${this.entrypoint}/accounts/${accountUid}/labels/${labelUid}`
313
+ );
314
+ }
315
+
35
316
  async exportGlossaryEntries(
36
317
  accountUid: string,
37
318
  glossaryUid: string,
@@ -0,0 +1,9 @@
1
+ import { BaseParameters } from "../../parameters/index";
2
+
3
+ export class ArchiveGlossariesParameters extends BaseParameters {
4
+ setGlossaryUids(glossaryUids: Array<string>): ArchiveGlossariesParameters {
5
+ this.set("glossaryUids", glossaryUids);
6
+
7
+ return this;
8
+ }
9
+ }
@@ -0,0 +1,37 @@
1
+ import { BaseParameters } from "../../parameters/index";
2
+ import { ExportEntriesFilterDto } from "../dto/export-entries-filter-dto";
3
+ import { GlossaryLocaleWorkflowDto } from "../dto/locale-workflow-dto";
4
+
5
+ export class AuthorizeEntriesParameters extends BaseParameters {
6
+ setSourceLocale(sourceLocale: string): AuthorizeEntriesParameters {
7
+ this.set("sourceLocale", sourceLocale);
8
+
9
+ return this;
10
+ }
11
+
12
+ setProjectId(projectId: string): AuthorizeEntriesParameters {
13
+ this.set("projectId", projectId);
14
+
15
+ return this;
16
+ }
17
+
18
+ setFilter(filter: ExportEntriesFilterDto): AuthorizeEntriesParameters {
19
+ this.set("filter", filter);
20
+
21
+ return this;
22
+ }
23
+
24
+ setLocaleWorkflows(
25
+ localeWorkflows: Array<GlossaryLocaleWorkflowDto>
26
+ ): AuthorizeEntriesParameters {
27
+ this.set("localeWorkflows", localeWorkflows);
28
+
29
+ return this;
30
+ }
31
+
32
+ setMissingTranslationsOnly(missingTranslationsOnly: boolean): AuthorizeEntriesParameters {
33
+ this.set("missingTranslationsOnly", missingTranslationsOnly);
34
+
35
+ return this;
36
+ }
37
+ }
@@ -0,0 +1,50 @@
1
+ import { BaseParameters } from "../../parameters/index";
2
+ import { PartOfSpeech } from "../enums/part-of-speech";
3
+ import { GlossaryTranslationDto } from "../dto/translation-dto";
4
+ import { CustomFieldValueDto } from "../dto/custom-field-value-dto";
5
+
6
+ export class CreateGlossaryEntryParameters extends BaseParameters {
7
+ setDefinition(definition: string): CreateGlossaryEntryParameters {
8
+ this.set("definition", definition);
9
+
10
+ return this;
11
+ }
12
+
13
+ setPartOfSpeech(partOfSpeech: PartOfSpeech): CreateGlossaryEntryParameters {
14
+ this.set("partOfSpeech", partOfSpeech);
15
+
16
+ return this;
17
+ }
18
+
19
+ setLabelUids(labelUids: Array<string>): CreateGlossaryEntryParameters {
20
+ this.set("labelUids", labelUids);
21
+
22
+ return this;
23
+ }
24
+
25
+ setSkipMissingTranslations(skipMissingTranslations: boolean): CreateGlossaryEntryParameters {
26
+ this.set("skipMissingTranslations", skipMissingTranslations);
27
+
28
+ return this;
29
+ }
30
+
31
+ setTranslations(translations: Array<GlossaryTranslationDto>): CreateGlossaryEntryParameters {
32
+ this.set("translations", translations);
33
+
34
+ return this;
35
+ }
36
+
37
+ setCustomFieldValues(
38
+ customFieldValues: Array<CustomFieldValueDto>
39
+ ): CreateGlossaryEntryParameters {
40
+ this.set("customFieldValues", customFieldValues);
41
+
42
+ return this;
43
+ }
44
+
45
+ setSuggestion(suggestion: boolean): CreateGlossaryEntryParameters {
46
+ this.set("suggestion", suggestion);
47
+
48
+ return this;
49
+ }
50
+ }
@@ -0,0 +1,40 @@
1
+ import { BaseParameters } from "../../parameters/index";
2
+ import { FallbackLocaleDto } from "../dto/fallback-locale-dto";
3
+
4
+ export class CreateGlossaryParameters extends BaseParameters {
5
+ setGlossaryName(glossaryName: string): CreateGlossaryParameters {
6
+ this.set("glossaryName", glossaryName);
7
+
8
+ return this;
9
+ }
10
+
11
+ setDescription(description: string): CreateGlossaryParameters {
12
+ this.set("description", description);
13
+
14
+ return this;
15
+ }
16
+
17
+ setVerificationMode(verificationMode: boolean): CreateGlossaryParameters {
18
+ this.set("verificationMode", verificationMode);
19
+
20
+ return this;
21
+ }
22
+
23
+ setLocaleIds(localeIds: Array<string>): CreateGlossaryParameters {
24
+ this.set("localeIds", localeIds);
25
+
26
+ return this;
27
+ }
28
+
29
+ setFallbackLocales(fallbackLocales: Array<FallbackLocaleDto>): CreateGlossaryParameters {
30
+ this.set("fallbackLocales", fallbackLocales);
31
+
32
+ return this;
33
+ }
34
+
35
+ setMtOptimized(mtOptimized: boolean): CreateGlossaryParameters {
36
+ this.set("mtOptimized", mtOptimized);
37
+
38
+ return this;
39
+ }
40
+ }
@@ -0,0 +1,9 @@
1
+ import { BaseParameters } from "../../parameters/index";
2
+
3
+ export class CreateLabelParameters extends BaseParameters {
4
+ setLabelText(labelText: string): CreateLabelParameters {
5
+ this.set("labelText", labelText);
6
+
7
+ return this;
8
+ }
9
+ }