smartling-api-sdk-nodejs 2.6.0 → 2.8.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 (43) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/api/jobs/dto/job-dto.ts +2 -1
  3. package/api/jobs/index.ts +13 -0
  4. package/api/jobs/params/callback-method.ts +4 -0
  5. package/api/jobs/params/create-job-parameters.ts +2 -39
  6. package/api/jobs/params/create-update-job-base-parameters.ts +69 -0
  7. package/api/jobs/params/update-job-parameters.ts +4 -0
  8. package/api/published-files/dto/published-file-dto.ts +7 -0
  9. package/api/published-files/index.ts +25 -0
  10. package/api/published-files/params/recently-published-files-parameters.ts +42 -0
  11. package/built/api/jobs/dto/job-dto.d.ts +2 -1
  12. package/built/api/jobs/index.d.ts +2 -0
  13. package/built/api/jobs/index.js +5 -0
  14. package/built/api/jobs/index.js.map +1 -1
  15. package/built/api/jobs/params/callback-method.d.ts +4 -0
  16. package/built/api/jobs/params/callback-method.js +9 -0
  17. package/built/api/jobs/params/callback-method.js.map +1 -0
  18. package/built/api/jobs/params/create-job-parameters.d.ts +2 -6
  19. package/built/api/jobs/params/create-job-parameters.js +2 -28
  20. package/built/api/jobs/params/create-job-parameters.js.map +1 -1
  21. package/built/api/jobs/params/create-update-job-base-parameters.d.ts +16 -0
  22. package/built/api/jobs/params/create-update-job-base-parameters.js +49 -0
  23. package/built/api/jobs/params/create-update-job-base-parameters.js.map +1 -0
  24. package/built/api/jobs/params/update-job-parameters.d.ts +3 -0
  25. package/built/api/jobs/params/update-job-parameters.js +8 -0
  26. package/built/api/jobs/params/update-job-parameters.js.map +1 -0
  27. package/built/api/published-files/dto/published-file-dto.d.ts +6 -0
  28. package/built/api/published-files/dto/published-file-dto.js +3 -0
  29. package/built/api/published-files/dto/published-file-dto.js.map +1 -0
  30. package/built/api/published-files/index.d.ts +10 -0
  31. package/built/api/published-files/index.js +27 -0
  32. package/built/api/published-files/index.js.map +1 -0
  33. package/built/api/published-files/params/recently-published-files-parameters.d.ts +8 -0
  34. package/built/api/published-files/params/recently-published-files-parameters.js +35 -0
  35. package/built/api/published-files/params/recently-published-files-parameters.js.map +1 -0
  36. package/built/index.d.ts +5 -0
  37. package/built/index.js +5 -0
  38. package/built/index.js.map +1 -1
  39. package/built/package.json +1 -1
  40. package/index.ts +5 -0
  41. package/package.json +1 -1
  42. package/test/jobs.spec.ts +82 -0
  43. package/test/published-files.spec.ts +74 -0
@@ -2,5 +2,5 @@ projectKey=smartling-api-sdk-nodejs
2
2
  serverUrl=https://sonar-next.connectors.stg.smartling.net
3
3
  serverVersion=8.6.1.40680
4
4
  dashboardUrl=https://sonar-next.connectors.stg.smartling.net/dashboard?id=smartling-api-sdk-nodejs
5
- ceTaskId=AYyITSNeRe7rJHsZ61oT
6
- ceTaskUrl=https://sonar-next.connectors.stg.smartling.net/api/ce/task?id=AYyITSNeRe7rJHsZ61oT
5
+ ceTaskId=AYzVPng9Re7rJHsZ61o1
6
+ ceTaskUrl=https://sonar-next.connectors.stg.smartling.net/api/ce/task?id=AYzVPng9Re7rJHsZ61o1
@@ -1,8 +1,9 @@
1
1
  import { CustomFieldDto } from "./custom-field-dto";
2
2
  import { BaseJobDto } from "./base-job-dto";
3
+ import { CallbackMethod } from "../params/callback-method";
3
4
 
4
5
  interface JobDto extends BaseJobDto {
5
- callbackMethod: string;
6
+ callbackMethod: CallbackMethod;
6
7
  callbackUrl: string;
7
8
  createdByUserUid: string;
8
9
  firstCompletedDate: string;
package/api/jobs/index.ts CHANGED
@@ -21,6 +21,7 @@ import { SearchJobsParameters } from "./params/search-jobs-parameters";
21
21
  import { FullSourceFileDto } from "./dto/full-source-file-dto";
22
22
  import { AddedFileDto } from "./dto/added-file-dto";
23
23
  import { AuthorizeJobParameters } from "./params/authorize-job-parameters";
24
+ import { UpdateJobParameters } from "./params/update-job-parameters";
24
25
 
25
26
  export class SmartlingJobsApi extends SmartlingBaseApi {
26
27
  constructor(smartlingApiBaseUrl: string, authApi: SmartlingAuthApi, logger: Logger) {
@@ -37,6 +38,18 @@ export class SmartlingJobsApi extends SmartlingBaseApi {
37
38
  );
38
39
  }
39
40
 
41
+ async updateJob(
42
+ projectId: string,
43
+ translationJobUid: string,
44
+ params: UpdateJobParameters
45
+ ): Promise<JobDto> {
46
+ return await this.makeRequest(
47
+ "put",
48
+ `${this.entrypoint}/${projectId}/jobs/${translationJobUid}`,
49
+ JSON.stringify(params.export())
50
+ );
51
+ }
52
+
40
53
  async getJob(projectId: string, translationJobUid: string): Promise<JobDetailsDto> {
41
54
  return await this.makeRequest(
42
55
  "get",
@@ -0,0 +1,4 @@
1
+ export enum CallbackMethod {
2
+ GET = "GET",
3
+ POST = "POST"
4
+ }
@@ -1,46 +1,9 @@
1
- import { BaseParameters } from "../../parameters/index";
2
- import { SmartlingException } from "../../exception/index";
3
-
4
- export class CreateJobParameters extends BaseParameters {
5
- setName(jobName: string): CreateJobParameters {
6
- if (jobName.length >= 170) {
7
- throw new SmartlingException("Job name should be less than 170 characters.");
8
- }
9
-
10
- this.set("jobName", jobName);
11
-
12
- return this;
13
- }
14
-
15
- setDescription(description: string): CreateJobParameters {
16
- if (description.length >= 2000) {
17
- throw new SmartlingException("Job description should be less than 2000 characters.");
18
- }
19
-
20
- this.set("description", description);
21
-
22
- return this;
23
- }
24
-
25
- setDueDate(dueDate: Date): CreateJobParameters {
26
- if (dueDate.getTime() < (new Date()).getTime()) {
27
- throw new SmartlingException("Job Due Date cannot be in the past.");
28
- }
29
-
30
- this.set("dueDate", dueDate.toISOString());
31
-
32
- return this;
33
- }
1
+ import { CreateUpdateJobBaseParameters } from "./create-update-job-base-parameters";
34
2
 
3
+ export class CreateJobParameters extends CreateUpdateJobBaseParameters<CreateJobParameters> {
35
4
  setTargetLocaleIds(targetLocaleIds: string[]): CreateJobParameters {
36
5
  this.set("targetLocaleIds", targetLocaleIds);
37
6
 
38
7
  return this;
39
8
  }
40
-
41
- setCallbackUrl(callbackUrl: string): CreateJobParameters {
42
- this.set("callbackUrl", callbackUrl);
43
-
44
- return this;
45
- }
46
9
  }
@@ -0,0 +1,69 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+ import { CallbackMethod } from "./callback-method";
4
+
5
+ interface CustomFieldBasicRequest {
6
+ fieldUid: string,
7
+ fieldValue: string
8
+ }
9
+
10
+ export abstract class CreateUpdateJobBaseParameters<T extends CreateUpdateJobBaseParameters<T>>
11
+ extends BaseParameters {
12
+ setName(jobName: string): T {
13
+ if (jobName.length >= 170) {
14
+ throw new SmartlingException("Job name should be less than 170 characters.");
15
+ }
16
+
17
+ this.set("jobName", jobName);
18
+
19
+ return this as unknown as T;
20
+ }
21
+
22
+ setDescription(description: string | null): T {
23
+ if (description && (description.length >= 2000)) {
24
+ throw new SmartlingException("Job description should be less than 2000 characters.");
25
+ }
26
+
27
+ this.set("description", description);
28
+
29
+ return this as unknown as T;
30
+ }
31
+
32
+ setDueDate(dueDate: Date | null): T {
33
+ if (dueDate && (dueDate.getTime() < (new Date()).getTime())) {
34
+ throw new SmartlingException("Job Due Date cannot be in the past.");
35
+ }
36
+
37
+ this.set("dueDate", dueDate ? dueDate.toISOString() : null);
38
+
39
+ return this as unknown as T;
40
+ }
41
+
42
+ setReferenceNumber(referenceNumber: string | null): T {
43
+ this.set("referenceNumber", referenceNumber);
44
+
45
+ return this as unknown as T;
46
+ }
47
+
48
+ setCallbackUrl(callbackUrl: string | null): T {
49
+ if (callbackUrl && (callbackUrl.length > 8192)) {
50
+ throw new SmartlingException("Job callback URL should be not greater than 8192 characters.");
51
+ }
52
+
53
+ this.set("callbackUrl", callbackUrl);
54
+
55
+ return this as unknown as T;
56
+ }
57
+
58
+ setCallbackMethod(callbackMethod: CallbackMethod | null): T {
59
+ this.set("callbackMethod", callbackMethod);
60
+
61
+ return this as unknown as T;
62
+ }
63
+
64
+ setCustomFields(customFields: CustomFieldBasicRequest[]): T {
65
+ this.set("customFields", customFields);
66
+
67
+ return this as unknown as T;
68
+ }
69
+ }
@@ -0,0 +1,4 @@
1
+ import { CreateUpdateJobBaseParameters } from "./create-update-job-base-parameters";
2
+
3
+ export class UpdateJobParameters extends CreateUpdateJobBaseParameters<UpdateJobParameters> {
4
+ }
@@ -0,0 +1,7 @@
1
+ interface PublishedFileDto {
2
+ fileUri: string;
3
+ localeId: string;
4
+ publishDate: Date;
5
+ }
6
+
7
+ export { PublishedFileDto };
@@ -0,0 +1,25 @@
1
+ import { SmartlingBaseApi } from "../base/index";
2
+ import { SmartlingAuthApi } from "../auth/index";
3
+ import { Logger } from "../logger";
4
+ import { RecentlyPublishedFilesParameters } from "./params/recently-published-files-parameters";
5
+ import { PublishedFileDto } from "./dto/published-file-dto";
6
+ import { SmartlingListResponse } from "../http/smartling-list-response";
7
+
8
+ export class SmartlingPublishedFilesApi extends SmartlingBaseApi {
9
+ constructor(smartlingApiBaseUrl: string, authApi: SmartlingAuthApi, logger: Logger) {
10
+ super(logger);
11
+
12
+ this.authApi = authApi;
13
+ this.entrypoint = `${smartlingApiBaseUrl}/published-files-api/v2`;
14
+ }
15
+
16
+ public async getRecentlyPublishedFiles(
17
+ projectUid: string, params: RecentlyPublishedFilesParameters
18
+ ): Promise<SmartlingListResponse<PublishedFileDto>> {
19
+ return await this.makeRequest(
20
+ "get",
21
+ `${this.entrypoint}/projects/${projectUid}/files/list/recently-published`,
22
+ params.export()
23
+ );
24
+ }
25
+ }
@@ -0,0 +1,42 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+
4
+ export class RecentlyPublishedFilesParameters extends BaseParameters {
5
+ public setPublishedAfterDate(publishedAfterDate: Date): RecentlyPublishedFilesParameters {
6
+ this.set("publishedAfter", `${publishedAfterDate.toISOString().split(".")[0]}Z`);
7
+
8
+ return this;
9
+ }
10
+
11
+ setLimit(limit: number): RecentlyPublishedFilesParameters {
12
+ if (limit > 0) {
13
+ this.set("limit", limit);
14
+
15
+ return this;
16
+ }
17
+
18
+ throw new SmartlingException("Limit must be > 0");
19
+ }
20
+
21
+ setOffset(offset: number): RecentlyPublishedFilesParameters {
22
+ if (offset >= 0) {
23
+ this.set("offset", offset);
24
+
25
+ return this;
26
+ }
27
+
28
+ throw new SmartlingException("Offset must be >= 0");
29
+ }
30
+
31
+ setFileUris(fileUris: Array<string>): RecentlyPublishedFilesParameters {
32
+ this.set("fileUris[]", fileUris);
33
+
34
+ return this;
35
+ }
36
+
37
+ setLocaleIds(localeIds: Array<string>): RecentlyPublishedFilesParameters {
38
+ this.set("localeIds[]", localeIds);
39
+
40
+ return this;
41
+ }
42
+ }
@@ -1,7 +1,8 @@
1
1
  import { CustomFieldDto } from "./custom-field-dto";
2
2
  import { BaseJobDto } from "./base-job-dto";
3
+ import { CallbackMethod } from "../params/callback-method";
3
4
  interface JobDto extends BaseJobDto {
4
- callbackMethod: string;
5
+ callbackMethod: CallbackMethod;
5
6
  callbackUrl: string;
6
7
  createdByUserUid: string;
7
8
  firstCompletedDate: string;
@@ -21,9 +21,11 @@ import { SearchJobsParameters } from "./params/search-jobs-parameters";
21
21
  import { FullSourceFileDto } from "./dto/full-source-file-dto";
22
22
  import { AddedFileDto } from "./dto/added-file-dto";
23
23
  import { AuthorizeJobParameters } from "./params/authorize-job-parameters";
24
+ import { UpdateJobParameters } from "./params/update-job-parameters";
24
25
  export declare class SmartlingJobsApi extends SmartlingBaseApi {
25
26
  constructor(smartlingApiBaseUrl: string, authApi: SmartlingAuthApi, logger: Logger);
26
27
  createJob(projectId: string, params: CreateJobParameters): Promise<JobDto>;
28
+ updateJob(projectId: string, translationJobUid: string, params: UpdateJobParameters): Promise<JobDto>;
27
29
  getJob(projectId: string, translationJobUid: string): Promise<JobDetailsDto>;
28
30
  authorizeJob(projectId: string, translationJobUid: string, params: AuthorizeJobParameters): Promise<Record<string, unknown>>;
29
31
  getJobFiles(projectId: string, translationJobUid: string, params: ListJobFilesParameters): Promise<SmartlingListResponse<FullSourceFileDto>>;
@@ -22,6 +22,11 @@ class SmartlingJobsApi extends index_1.SmartlingBaseApi {
22
22
  return yield this.makeRequest("post", `${this.entrypoint}/${projectId}/jobs`, JSON.stringify(params.export()));
23
23
  });
24
24
  }
25
+ updateJob(projectId, translationJobUid, params) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ return yield this.makeRequest("put", `${this.entrypoint}/${projectId}/jobs/${translationJobUid}`, JSON.stringify(params.export()));
28
+ });
29
+ }
25
30
  getJob(projectId, translationJobUid) {
26
31
  return __awaiter(this, void 0, void 0, function* () {
27
32
  return yield this.makeRequest("get", `${this.entrypoint}/${projectId}/jobs/${translationJobUid}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/jobs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/jobs/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare enum CallbackMethod {
2
+ GET = "GET",
3
+ POST = "POST"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallbackMethod = void 0;
4
+ var CallbackMethod;
5
+ (function (CallbackMethod) {
6
+ CallbackMethod["GET"] = "GET";
7
+ CallbackMethod["POST"] = "POST";
8
+ })(CallbackMethod = exports.CallbackMethod || (exports.CallbackMethod = {}));
9
+ //# sourceMappingURL=callback-method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callback-method.js","sourceRoot":"","sources":["../../../../api/jobs/params/callback-method.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,+BAAa,CAAA;AACjB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB"}
@@ -1,8 +1,4 @@
1
- import { BaseParameters } from "../../parameters/index";
2
- export declare class CreateJobParameters extends BaseParameters {
3
- setName(jobName: string): CreateJobParameters;
4
- setDescription(description: string): CreateJobParameters;
5
- setDueDate(dueDate: Date): CreateJobParameters;
1
+ import { CreateUpdateJobBaseParameters } from "./create-update-job-base-parameters";
2
+ export declare class CreateJobParameters extends CreateUpdateJobBaseParameters<CreateJobParameters> {
6
3
  setTargetLocaleIds(targetLocaleIds: string[]): CreateJobParameters;
7
- setCallbackUrl(callbackUrl: string): CreateJobParameters;
8
4
  }
@@ -1,38 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateJobParameters = void 0;
4
- const index_1 = require("../../parameters/index");
5
- const index_2 = require("../../exception/index");
6
- class CreateJobParameters extends index_1.BaseParameters {
7
- setName(jobName) {
8
- if (jobName.length >= 170) {
9
- throw new index_2.SmartlingException("Job name should be less than 170 characters.");
10
- }
11
- this.set("jobName", jobName);
12
- return this;
13
- }
14
- setDescription(description) {
15
- if (description.length >= 2000) {
16
- throw new index_2.SmartlingException("Job description should be less than 2000 characters.");
17
- }
18
- this.set("description", description);
19
- return this;
20
- }
21
- setDueDate(dueDate) {
22
- if (dueDate.getTime() < (new Date()).getTime()) {
23
- throw new index_2.SmartlingException("Job Due Date cannot be in the past.");
24
- }
25
- this.set("dueDate", dueDate.toISOString());
26
- return this;
27
- }
4
+ const create_update_job_base_parameters_1 = require("./create-update-job-base-parameters");
5
+ class CreateJobParameters extends create_update_job_base_parameters_1.CreateUpdateJobBaseParameters {
28
6
  setTargetLocaleIds(targetLocaleIds) {
29
7
  this.set("targetLocaleIds", targetLocaleIds);
30
8
  return this;
31
9
  }
32
- setCallbackUrl(callbackUrl) {
33
- this.set("callbackUrl", callbackUrl);
34
- return this;
35
- }
36
10
  }
37
11
  exports.CreateJobParameters = CreateJobParameters;
38
12
  //# sourceMappingURL=create-job-parameters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-job-parameters.js","sourceRoot":"","sources":["../../../../api/jobs/params/create-job-parameters.ts"],"names":[],"mappings":";;;AAAA,kDAAwD;AACxD,iDAA2D;AAE3D,MAAa,mBAAoB,SAAQ,sBAAc;IACnD,OAAO,CAAC,OAAe;QACnB,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;YACvB,MAAM,IAAI,0BAAkB,CAAC,8CAA8C,CAAC,CAAC;SAChF;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,EAAE;YAC5B,MAAM,IAAI,0BAAkB,CAAC,sDAAsD,CAAC,CAAC;SACxF;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,OAAa;QACpB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,MAAM,IAAI,0BAAkB,CAAC,qCAAqC,CAAC,CAAC;SACvE;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,eAAyB;QACxC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA1CD,kDA0CC"}
1
+ {"version":3,"file":"create-job-parameters.js","sourceRoot":"","sources":["../../../../api/jobs/params/create-job-parameters.ts"],"names":[],"mappings":";;;AAAA,2FAAoF;AAEpF,MAAa,mBAAoB,SAAQ,iEAAkD;IACvF,kBAAkB,CAAC,eAAyB;QACxC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAND,kDAMC"}
@@ -0,0 +1,16 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { CallbackMethod } from "./callback-method";
3
+ interface CustomFieldBasicRequest {
4
+ fieldUid: string;
5
+ fieldValue: string;
6
+ }
7
+ export declare abstract class CreateUpdateJobBaseParameters<T extends CreateUpdateJobBaseParameters<T>> extends BaseParameters {
8
+ setName(jobName: string): T;
9
+ setDescription(description: string | null): T;
10
+ setDueDate(dueDate: Date | null): T;
11
+ setReferenceNumber(referenceNumber: string | null): T;
12
+ setCallbackUrl(callbackUrl: string | null): T;
13
+ setCallbackMethod(callbackMethod: CallbackMethod | null): T;
14
+ setCustomFields(customFields: CustomFieldBasicRequest[]): T;
15
+ }
16
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateUpdateJobBaseParameters = void 0;
4
+ const parameters_1 = require("../../parameters");
5
+ const exception_1 = require("../../exception");
6
+ class CreateUpdateJobBaseParameters extends parameters_1.BaseParameters {
7
+ setName(jobName) {
8
+ if (jobName.length >= 170) {
9
+ throw new exception_1.SmartlingException("Job name should be less than 170 characters.");
10
+ }
11
+ this.set("jobName", jobName);
12
+ return this;
13
+ }
14
+ setDescription(description) {
15
+ if (description && (description.length >= 2000)) {
16
+ throw new exception_1.SmartlingException("Job description should be less than 2000 characters.");
17
+ }
18
+ this.set("description", description);
19
+ return this;
20
+ }
21
+ setDueDate(dueDate) {
22
+ if (dueDate && (dueDate.getTime() < (new Date()).getTime())) {
23
+ throw new exception_1.SmartlingException("Job Due Date cannot be in the past.");
24
+ }
25
+ this.set("dueDate", dueDate ? dueDate.toISOString() : null);
26
+ return this;
27
+ }
28
+ setReferenceNumber(referenceNumber) {
29
+ this.set("referenceNumber", referenceNumber);
30
+ return this;
31
+ }
32
+ setCallbackUrl(callbackUrl) {
33
+ if (callbackUrl && (callbackUrl.length > 8192)) {
34
+ throw new exception_1.SmartlingException("Job callback URL should be not greater than 8192 characters.");
35
+ }
36
+ this.set("callbackUrl", callbackUrl);
37
+ return this;
38
+ }
39
+ setCallbackMethod(callbackMethod) {
40
+ this.set("callbackMethod", callbackMethod);
41
+ return this;
42
+ }
43
+ setCustomFields(customFields) {
44
+ this.set("customFields", customFields);
45
+ return this;
46
+ }
47
+ }
48
+ exports.CreateUpdateJobBaseParameters = CreateUpdateJobBaseParameters;
49
+ //# sourceMappingURL=create-update-job-base-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-update-job-base-parameters.js","sourceRoot":"","sources":["../../../../api/jobs/params/create-update-job-base-parameters.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAClD,+CAAqD;AAQrD,MAAsB,6BAClB,SAAQ,2BAAc;IACtB,OAAO,CAAC,OAAe;QACnB,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE;YACvB,MAAM,IAAI,8BAAkB,CAAC,8CAA8C,CAAC,CAAC;SAChF;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE7B,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,WAA0B;QACrC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE;YAC7C,MAAM,IAAI,8BAAkB,CAAC,sDAAsD,CAAC,CAAC;SACxF;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAErC,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,OAAoB;QAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE;YACzD,MAAM,IAAI,8BAAkB,CAAC,qCAAqC,CAAC,CAAC;SACvE;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE5D,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,eAA8B;QAC7C,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAE7C,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,WAA0B;QACrC,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;YAC5C,MAAM,IAAI,8BAAkB,CAAC,8DAA8D,CAAC,CAAC;SAChG;QAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAErC,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,cAAqC;QACnD,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAE3C,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,eAAe,CAAC,YAAuC;QACnD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAEvC,OAAO,IAAoB,CAAC;IAChC,CAAC;CACJ;AA3DD,sEA2DC"}
@@ -0,0 +1,3 @@
1
+ import { CreateUpdateJobBaseParameters } from "./create-update-job-base-parameters";
2
+ export declare class UpdateJobParameters extends CreateUpdateJobBaseParameters<UpdateJobParameters> {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateJobParameters = void 0;
4
+ const create_update_job_base_parameters_1 = require("./create-update-job-base-parameters");
5
+ class UpdateJobParameters extends create_update_job_base_parameters_1.CreateUpdateJobBaseParameters {
6
+ }
7
+ exports.UpdateJobParameters = UpdateJobParameters;
8
+ //# sourceMappingURL=update-job-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-job-parameters.js","sourceRoot":"","sources":["../../../../api/jobs/params/update-job-parameters.ts"],"names":[],"mappings":";;;AAAA,2FAAoF;AAEpF,MAAa,mBAAoB,SAAQ,iEAAkD;CAC1F;AADD,kDACC"}
@@ -0,0 +1,6 @@
1
+ interface PublishedFileDto {
2
+ fileUri: string;
3
+ localeId: string;
4
+ publishDate: Date;
5
+ }
6
+ export { PublishedFileDto };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=published-file-dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published-file-dto.js","sourceRoot":"","sources":["../../../../api/published-files/dto/published-file-dto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { SmartlingBaseApi } from "../base/index";
2
+ import { SmartlingAuthApi } from "../auth/index";
3
+ import { Logger } from "../logger";
4
+ import { RecentlyPublishedFilesParameters } from "./params/recently-published-files-parameters";
5
+ import { PublishedFileDto } from "./dto/published-file-dto";
6
+ import { SmartlingListResponse } from "../http/smartling-list-response";
7
+ export declare class SmartlingPublishedFilesApi extends SmartlingBaseApi {
8
+ constructor(smartlingApiBaseUrl: string, authApi: SmartlingAuthApi, logger: Logger);
9
+ getRecentlyPublishedFiles(projectUid: string, params: RecentlyPublishedFilesParameters): Promise<SmartlingListResponse<PublishedFileDto>>;
10
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SmartlingPublishedFilesApi = void 0;
13
+ const index_1 = require("../base/index");
14
+ class SmartlingPublishedFilesApi extends index_1.SmartlingBaseApi {
15
+ constructor(smartlingApiBaseUrl, authApi, logger) {
16
+ super(logger);
17
+ this.authApi = authApi;
18
+ this.entrypoint = `${smartlingApiBaseUrl}/published-files-api/v2`;
19
+ }
20
+ getRecentlyPublishedFiles(projectUid, params) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ return yield this.makeRequest("get", `${this.entrypoint}/projects/${projectUid}/files/list/recently-published`, params.export());
23
+ });
24
+ }
25
+ }
26
+ exports.SmartlingPublishedFilesApi = SmartlingPublishedFilesApi;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/published-files/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAiD;AAOjD,MAAa,0BAA2B,SAAQ,wBAAgB;IAC5D,YAAY,mBAA2B,EAAE,OAAyB,EAAE,MAAc;QAC9E,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,GAAG,mBAAmB,yBAAyB,CAAC;IACtE,CAAC;IAEY,yBAAyB,CAClC,UAAkB,EAAE,MAAwC;;YAE5D,OAAO,MAAM,IAAI,CAAC,WAAW,CACzB,KAAK,EACL,GAAG,IAAI,CAAC,UAAU,aAAa,UAAU,gCAAgC,EACzE,MAAM,CAAC,MAAM,EAAE,CAClB,CAAC;QACN,CAAC;KAAA;CACJ;AAjBD,gEAiBC"}
@@ -0,0 +1,8 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ export declare class RecentlyPublishedFilesParameters extends BaseParameters {
3
+ setPublishedAfterDate(publishedAfterDate: Date): RecentlyPublishedFilesParameters;
4
+ setLimit(limit: number): RecentlyPublishedFilesParameters;
5
+ setOffset(offset: number): RecentlyPublishedFilesParameters;
6
+ setFileUris(fileUris: Array<string>): RecentlyPublishedFilesParameters;
7
+ setLocaleIds(localeIds: Array<string>): RecentlyPublishedFilesParameters;
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecentlyPublishedFilesParameters = void 0;
4
+ const parameters_1 = require("../../parameters");
5
+ const exception_1 = require("../../exception");
6
+ class RecentlyPublishedFilesParameters extends parameters_1.BaseParameters {
7
+ setPublishedAfterDate(publishedAfterDate) {
8
+ this.set("publishedAfter", `${publishedAfterDate.toISOString().split(".")[0]}Z`);
9
+ return this;
10
+ }
11
+ setLimit(limit) {
12
+ if (limit > 0) {
13
+ this.set("limit", limit);
14
+ return this;
15
+ }
16
+ throw new exception_1.SmartlingException("Limit must be > 0");
17
+ }
18
+ setOffset(offset) {
19
+ if (offset >= 0) {
20
+ this.set("offset", offset);
21
+ return this;
22
+ }
23
+ throw new exception_1.SmartlingException("Offset must be >= 0");
24
+ }
25
+ setFileUris(fileUris) {
26
+ this.set("fileUris[]", fileUris);
27
+ return this;
28
+ }
29
+ setLocaleIds(localeIds) {
30
+ this.set("localeIds[]", localeIds);
31
+ return this;
32
+ }
33
+ }
34
+ exports.RecentlyPublishedFilesParameters = RecentlyPublishedFilesParameters;
35
+ //# sourceMappingURL=recently-published-files-parameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recently-published-files-parameters.js","sourceRoot":"","sources":["../../../../api/published-files/params/recently-published-files-parameters.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAClD,+CAAqD;AAErD,MAAa,gCAAiC,SAAQ,2BAAc;IACzD,qBAAqB,CAAC,kBAAwB;QACjD,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,KAAa;QAClB,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAEzB,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,8BAAkB,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,IAAI,MAAM,IAAI,CAAC,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE3B,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,8BAAkB,CAAC,qBAAqB,CAAC,CAAC;IACxD,CAAC;IAED,WAAW,CAAC,QAAuB;QAC/B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,SAAwB;QACjC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAtCD,4EAsCC"}
package/built/index.d.ts CHANGED
@@ -68,6 +68,7 @@ export * from "./api/jobs/dto/removed-file-dto";
68
68
  export * from "./api/jobs/dto/progress-item-dto";
69
69
  export * from "./api/jobs/dto/summary-report-item-dto";
70
70
  export * from "./api/jobs/dto/job-progress-dto";
71
+ export * from "./api/jobs/params/callback-method";
71
72
  export * from "./api/jobs/params/create-job-parameters";
72
73
  export * from "./api/jobs/params/file-progress-parameters";
73
74
  export * from "./api/jobs/params/job-progress-parameters";
@@ -78,11 +79,15 @@ export * from "./api/jobs/params/remove-file-parameters";
78
79
  export * from "./api/jobs/params/cancel-job-parameters";
79
80
  export * from "./api/jobs/params/close-job-parameters";
80
81
  export * from "./api/jobs/params/search-jobs-parameters";
82
+ export * from "./api/jobs/params/update-job-parameters";
81
83
  export * from "./api/parameters/index";
82
84
  export * from "./api/parameters/order";
83
85
  export * from "./api/projects/index";
84
86
  export * from "./api/projects/dto/project-dto";
85
87
  export * from "./api/projects/dto/locale-dto";
88
+ export * from "./api/published-files/index";
89
+ export * from "./api/published-files/dto/published-file-dto";
90
+ export * from "./api/published-files/params/recently-published-files-parameters";
86
91
  export * from "./api/strings/index";
87
92
  export * from "./api/strings/dto/source-string-dto";
88
93
  export * from "./api/strings/dto/source-string-key-dto";
package/built/index.js CHANGED
@@ -84,6 +84,7 @@ __exportStar(require("./api/jobs/dto/removed-file-dto"), exports);
84
84
  __exportStar(require("./api/jobs/dto/progress-item-dto"), exports);
85
85
  __exportStar(require("./api/jobs/dto/summary-report-item-dto"), exports);
86
86
  __exportStar(require("./api/jobs/dto/job-progress-dto"), exports);
87
+ __exportStar(require("./api/jobs/params/callback-method"), exports);
87
88
  __exportStar(require("./api/jobs/params/create-job-parameters"), exports);
88
89
  __exportStar(require("./api/jobs/params/file-progress-parameters"), exports);
89
90
  __exportStar(require("./api/jobs/params/job-progress-parameters"), exports);
@@ -94,11 +95,15 @@ __exportStar(require("./api/jobs/params/remove-file-parameters"), exports);
94
95
  __exportStar(require("./api/jobs/params/cancel-job-parameters"), exports);
95
96
  __exportStar(require("./api/jobs/params/close-job-parameters"), exports);
96
97
  __exportStar(require("./api/jobs/params/search-jobs-parameters"), exports);
98
+ __exportStar(require("./api/jobs/params/update-job-parameters"), exports);
97
99
  __exportStar(require("./api/parameters/index"), exports);
98
100
  __exportStar(require("./api/parameters/order"), exports);
99
101
  __exportStar(require("./api/projects/index"), exports);
100
102
  __exportStar(require("./api/projects/dto/project-dto"), exports);
101
103
  __exportStar(require("./api/projects/dto/locale-dto"), exports);
104
+ __exportStar(require("./api/published-files/index"), exports);
105
+ __exportStar(require("./api/published-files/dto/published-file-dto"), exports);
106
+ __exportStar(require("./api/published-files/params/recently-published-files-parameters"), exports);
102
107
  __exportStar(require("./api/strings/index"), exports);
103
108
  __exportStar(require("./api/strings/dto/source-string-dto"), exports);
104
109
  __exportStar(require("./api/strings/dto/source-string-key-dto"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,kEAAgD;AAChD,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,wEAAsD;AACtD,6EAA2D;AAC3D,gEAA8C;AAC9C,4EAA0D;AAC1D,uEAAqD;AACrD,0FAAwE;AACxE,oEAAkD;AAClD,iFAA+D;AAC/D,kFAAgE;AAChE,uEAAqD;AACrD,sEAAoD;AACpD,wDAAsC;AACtC,gEAA8C;AAC9C,4FAA0E;AAC1E,2FAAyE;AACzE,oEAAkD;AAClD,oFAAkE;AAClE,qFAAmE;AACnE,uFAAqE;AACrE,4FAA0E;AAC1E,2EAAyD;AACzD,uEAAqD;AACrD,8EAA4D;AAC5D,4FAA0E;AAC1E,qFAAmE;AACnE,oDAAkC;AAClC,8EAA4D;AAC5D,oEAAkD;AAClD,+DAA6C;AAC7C,4EAA0D;AAC1D,kFAAgE;AAChE,kFAAgE;AAChE,+EAA6D;AAC7D,oEAAkD;AAClD,qEAAmD;AACnD,0DAAwC;AACxC,kEAAgD;AAChD,uEAAqD;AACrD,yEAAuD;AACvD,yEAAuD;AACvD,4EAA0D;AAC1D,mFAAiE;AACjE,wFAAsE;AACtE,2FAAyE;AACzE,wFAAsE;AACtE,0FAAwE;AACxE,wEAAsD;AACtD,wEAAsD;AACtD,mFAAiE;AACjE,6EAA2D;AAC3D,mDAAiC;AACjC,8DAA4C;AAC5C,kFAAgE;AAChE,kEAAgD;AAChD,mEAAiD;AACjD,sEAAoD;AACpD,iEAA+C;AAC/C,yDAAuC;AACvC,iEAA+C;AAC/C,mFAAiE;AACjE,uFAAqE;AACrE,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,0EAAwD;AACxD,6EAA2D;AAC3D,4EAA0D;AAC1D,+DAA6C;AAC7C,8EAA4D;AAC5D,yEAAuD;AACvD,2EAAyD;AACzD,0EAAwD;AACxD,yEAAuD;AACvD,2EAAyD;AACzD,yDAAuC;AACvC,yDAAuC;AACvC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,sDAAoC;AACpC,sEAAoD;AACpD,0EAAwD;AACxD,uFAAqE;AACrE,+CAA6B;AAC7B,wEAAsD;AACtD,+FAA6E;AAC7E,6EAA2D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,kEAAgD;AAChD,mDAAiC;AACjC,sDAAoC;AACpC,sDAAoC;AACpC,wEAAsD;AACtD,6EAA2D;AAC3D,gEAA8C;AAC9C,4EAA0D;AAC1D,uEAAqD;AACrD,0FAAwE;AACxE,oEAAkD;AAClD,iFAA+D;AAC/D,kFAAgE;AAChE,uEAAqD;AACrD,sEAAoD;AACpD,wDAAsC;AACtC,gEAA8C;AAC9C,4FAA0E;AAC1E,2FAAyE;AACzE,oEAAkD;AAClD,oFAAkE;AAClE,qFAAmE;AACnE,uFAAqE;AACrE,4FAA0E;AAC1E,2EAAyD;AACzD,uEAAqD;AACrD,8EAA4D;AAC5D,4FAA0E;AAC1E,qFAAmE;AACnE,oDAAkC;AAClC,8EAA4D;AAC5D,oEAAkD;AAClD,+DAA6C;AAC7C,4EAA0D;AAC1D,kFAAgE;AAChE,kFAAgE;AAChE,+EAA6D;AAC7D,oEAAkD;AAClD,qEAAmD;AACnD,0DAAwC;AACxC,kEAAgD;AAChD,uEAAqD;AACrD,yEAAuD;AACvD,yEAAuD;AACvD,4EAA0D;AAC1D,mFAAiE;AACjE,wFAAsE;AACtE,2FAAyE;AACzE,wFAAsE;AACtE,0FAAwE;AACxE,wEAAsD;AACtD,wEAAsD;AACtD,mFAAiE;AACjE,6EAA2D;AAC3D,mDAAiC;AACjC,8DAA4C;AAC5C,kFAAgE;AAChE,kEAAgD;AAChD,mEAAiD;AACjD,sEAAoD;AACpD,iEAA+C;AAC/C,yDAAuC;AACvC,iEAA+C;AAC/C,mFAAiE;AACjE,uFAAqE;AACrE,kEAAgD;AAChD,mEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,oEAAkD;AAClD,0EAAwD;AACxD,6EAA2D;AAC3D,4EAA0D;AAC1D,+DAA6C;AAC7C,8EAA4D;AAC5D,yEAAuD;AACvD,2EAAyD;AACzD,0EAAwD;AACxD,yEAAuD;AACvD,2EAAyD;AACzD,0EAAwD;AACxD,yDAAuC;AACvC,yDAAuC;AACvC,uDAAqC;AACrC,iEAA+C;AAC/C,gEAA8C;AAC9C,8DAA4C;AAC5C,+EAA6D;AAC7D,mGAAiF;AACjF,sDAAoC;AACpC,sEAAoD;AACpD,0EAAwD;AACxD,uFAAqE;AACrE,+CAA6B;AAC7B,wEAAsD;AACtD,+FAA6E;AAC7E,6EAA2D"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smartling-api-sdk-nodejs",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "description": "Package for Smartling API",
5
5
  "main": "built/index.js",
6
6
  "engines": {
package/index.ts CHANGED
@@ -68,6 +68,7 @@ export * from "./api/jobs/dto/removed-file-dto";
68
68
  export * from "./api/jobs/dto/progress-item-dto";
69
69
  export * from "./api/jobs/dto/summary-report-item-dto";
70
70
  export * from "./api/jobs/dto/job-progress-dto";
71
+ export * from "./api/jobs/params/callback-method";
71
72
  export * from "./api/jobs/params/create-job-parameters";
72
73
  export * from "./api/jobs/params/file-progress-parameters";
73
74
  export * from "./api/jobs/params/job-progress-parameters";
@@ -78,11 +79,15 @@ export * from "./api/jobs/params/remove-file-parameters";
78
79
  export * from "./api/jobs/params/cancel-job-parameters";
79
80
  export * from "./api/jobs/params/close-job-parameters";
80
81
  export * from "./api/jobs/params/search-jobs-parameters";
82
+ export * from "./api/jobs/params/update-job-parameters";
81
83
  export * from "./api/parameters/index";
82
84
  export * from "./api/parameters/order";
83
85
  export * from "./api/projects/index";
84
86
  export * from "./api/projects/dto/project-dto";
85
87
  export * from "./api/projects/dto/locale-dto";
88
+ export * from "./api/published-files/index";
89
+ export * from "./api/published-files/dto/published-file-dto";
90
+ export * from "./api/published-files/params/recently-published-files-parameters";
86
91
  export * from "./api/strings/index";
87
92
  export * from "./api/strings/dto/source-string-dto";
88
93
  export * from "./api/strings/dto/source-string-key-dto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smartling-api-sdk-nodejs",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "description": "Package for Smartling API",
5
5
  "main": "built/index.js",
6
6
  "engines": {
package/test/jobs.spec.ts CHANGED
@@ -14,6 +14,8 @@ import { CancelJobParameters } from "../api/jobs/params/cancel-job-parameters";
14
14
  import { CloseJobParameters } from "../api/jobs/params/close-job-parameters";
15
15
  import { AddFileParameters } from "../api/jobs/params/add-file-parameters";
16
16
  import { AuthorizeJobParameters } from "../api/jobs/params/authorize-job-parameters";
17
+ import { UpdateJobParameters } from "../api/jobs/params/update-job-parameters";
18
+ import { CallbackMethod } from "../api/jobs/params/callback-method";
17
19
 
18
20
  describe("SmartlingJobsAPI class tests.", () => {
19
21
  const projectId = "testProjectId";
@@ -74,6 +76,86 @@ describe("SmartlingJobsAPI class tests.", () => {
74
76
  );
75
77
  });
76
78
 
79
+ it("Update job", async () => {
80
+ const params = new UpdateJobParameters()
81
+ .setName("Test job")
82
+ .setDescription("Test job description")
83
+ .setDueDate(new Date("2100-12-31T22:00:00.000Z"))
84
+ .setReferenceNumber("CustomerReferenceNumber1")
85
+ .setCallbackUrl("https://test-domain.com")
86
+ .setCallbackMethod(CallbackMethod.GET)
87
+ .setCustomFields([
88
+ {
89
+ fieldUid: "testFieldUid",
90
+ fieldValue: "testFieldValue"
91
+ }
92
+ ]);
93
+
94
+ await jobApi.updateJob(projectId, jobUid, params);
95
+
96
+ sinon.assert.calledOnceWithExactly(
97
+ jobServiceApiFetchStub,
98
+ `https://test.com/jobs-api/v3/projects/${projectId}/jobs/${jobUid}`,
99
+ {
100
+ method: "put",
101
+ headers: {
102
+ Authorization: "test_token_type test_access_token",
103
+ "Content-Type": "application/json",
104
+ "User-Agent": "test_user_agent"
105
+ },
106
+ body: JSON.stringify({
107
+ jobName: "Test job",
108
+ description: "Test job description",
109
+ dueDate: "2100-12-31T22:00:00.000Z",
110
+ referenceNumber: "CustomerReferenceNumber1",
111
+ callbackUrl: "https://test-domain.com",
112
+ callbackMethod: "GET",
113
+ customFields: [
114
+ {
115
+ fieldUid: "testFieldUid",
116
+ fieldValue: "testFieldValue"
117
+ }
118
+ ]
119
+ })
120
+ }
121
+ );
122
+ });
123
+
124
+ it("Update job: reset fields", async () => {
125
+ const params = new UpdateJobParameters()
126
+ .setName("Test job")
127
+ .setDescription(null)
128
+ .setDueDate(null)
129
+ .setReferenceNumber(null)
130
+ .setCallbackUrl(null)
131
+ .setCallbackMethod(null)
132
+ .setCustomFields([]);
133
+
134
+ await jobApi.updateJob(projectId, jobUid, params);
135
+
136
+ sinon.assert.calledOnceWithExactly(
137
+ jobServiceApiFetchStub,
138
+ `https://test.com/jobs-api/v3/projects/${projectId}/jobs/${jobUid}`,
139
+ {
140
+ method: "put",
141
+ headers: {
142
+ Authorization: "test_token_type test_access_token",
143
+ "Content-Type": "application/json",
144
+ "User-Agent": "test_user_agent"
145
+ },
146
+ body: JSON.stringify({
147
+ jobName: "Test job",
148
+ description: null,
149
+ dueDate: null,
150
+ referenceNumber: null,
151
+ callbackUrl: null,
152
+ callbackMethod: null,
153
+ customFields: []
154
+ })
155
+ }
156
+ );
157
+ });
158
+
77
159
  it("Get job", async () => {
78
160
  await jobApi.getJob(projectId, jobUid);
79
161
 
@@ -0,0 +1,74 @@
1
+ import sinon from "sinon";
2
+ import assert from "assert";
3
+ import { SmartlingPublishedFilesApi } from "../api/published-files";
4
+ import { RecentlyPublishedFilesParameters } from "../api/published-files/params/recently-published-files-parameters";
5
+ import { SmartlingAuthApi } from "../api/auth/index";
6
+ import { loggerMock, authMock, responseMock } from "./mock";
7
+
8
+ describe("SmartlingPublishedFilesApi class tests.", () => {
9
+ let publishedFilesApi;
10
+ let publishedFilesApiFetchStub;
11
+ let publishedFilesApiUaStub;
12
+ let responseMockTextStub;
13
+
14
+ beforeEach(() => {
15
+ publishedFilesApi = new SmartlingPublishedFilesApi("https://test.com", authMock as unknown as SmartlingAuthApi, loggerMock);
16
+
17
+ publishedFilesApiFetchStub = sinon.stub(publishedFilesApi, "fetch");
18
+ publishedFilesApiUaStub = sinon.stub(publishedFilesApi, "ua");
19
+ responseMockTextStub = sinon.stub(responseMock, "text");
20
+
21
+ publishedFilesApiUaStub.returns("test_user_agent");
22
+ publishedFilesApiFetchStub.returns(responseMock);
23
+ responseMockTextStub.returns("{\"response\": {}}");
24
+ });
25
+
26
+ afterEach(() => {
27
+ publishedFilesApiFetchStub.restore();
28
+ responseMockTextStub.restore();
29
+ publishedFilesApiUaStub.restore();
30
+ });
31
+
32
+ it("Get recently published files", async () => {
33
+ const params: RecentlyPublishedFilesParameters = new RecentlyPublishedFilesParameters();
34
+
35
+ params.setPublishedAfterDate(new Date("2020-09-24T00:00:00Z"));
36
+ params.setFileUris(["test:_1.xml", "test/file&_2.xml"]);
37
+ params.setLocaleIds(["fr", "de"]);
38
+ params.setOffset(0);
39
+ params.setLimit(100);
40
+
41
+ await publishedFilesApi.getRecentlyPublishedFiles("test_project", params);
42
+
43
+ sinon.assert.calledOnce(publishedFilesApiFetchStub);
44
+ sinon.assert.calledWithExactly(
45
+ publishedFilesApiFetchStub,
46
+ "https://test.com/published-files-api/v2/projects/test_project/files/list/recently-published?publishedAfter=2020-09-24T00%3A00%3A00Z&fileUris%5B%5D=test%3A_1.xml&fileUris%5B%5D=test%2Ffile%26_2.xml&localeIds%5B%5D=fr&localeIds%5B%5D=de&offset=0&limit=100", {
47
+ headers: {
48
+ Authorization: "test_token_type test_access_token",
49
+ "Content-Type": "application/json",
50
+ "User-Agent": "test_user_agent"
51
+ },
52
+ method: "get"
53
+ }
54
+ );
55
+ });
56
+
57
+ it("Invalid offset", async () => {
58
+ try {
59
+ new RecentlyPublishedFilesParameters().setOffset(-1);
60
+ } catch (e) {
61
+ assert.equal(e.constructor.name, "SmartlingException");
62
+ assert.equal(e.message, "Offset must be >= 0");
63
+ }
64
+ });
65
+
66
+ it("Invalid limit", async () => {
67
+ try {
68
+ new RecentlyPublishedFilesParameters().setLimit(0);
69
+ } catch (e) {
70
+ assert.equal(e.constructor.name, "SmartlingException");
71
+ assert.equal(e.message, "Limit must be > 0");
72
+ }
73
+ });
74
+ });