smartling-api-sdk-nodejs 2.7.0 → 2.8.1

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 (30) 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 +65 -0
  7. package/api/jobs/params/update-job-parameters.ts +4 -0
  8. package/built/api/jobs/dto/job-dto.d.ts +2 -1
  9. package/built/api/jobs/index.d.ts +2 -0
  10. package/built/api/jobs/index.js +5 -0
  11. package/built/api/jobs/index.js.map +1 -1
  12. package/built/api/jobs/params/callback-method.d.ts +4 -0
  13. package/built/api/jobs/params/callback-method.js +9 -0
  14. package/built/api/jobs/params/callback-method.js.map +1 -0
  15. package/built/api/jobs/params/create-job-parameters.d.ts +2 -6
  16. package/built/api/jobs/params/create-job-parameters.js +2 -28
  17. package/built/api/jobs/params/create-job-parameters.js.map +1 -1
  18. package/built/api/jobs/params/create-update-job-base-parameters.d.ts +16 -0
  19. package/built/api/jobs/params/create-update-job-base-parameters.js +46 -0
  20. package/built/api/jobs/params/create-update-job-base-parameters.js.map +1 -0
  21. package/built/api/jobs/params/update-job-parameters.d.ts +3 -0
  22. package/built/api/jobs/params/update-job-parameters.js +8 -0
  23. package/built/api/jobs/params/update-job-parameters.js.map +1 -0
  24. package/built/index.d.ts +2 -0
  25. package/built/index.js +2 -0
  26. package/built/index.js.map +1 -1
  27. package/built/package.json +1 -1
  28. package/index.ts +2 -0
  29. package/package.json +1 -1
  30. package/test/jobs.spec.ts +82 -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=AYzU_wxtRe7rJHsZ61o0
6
- ceTaskUrl=https://sonar-next.connectors.stg.smartling.net/api/ce/task?id=AYzU_wxtRe7rJHsZ61o0
5
+ ceTaskId=AYzZdu3tRe7rJHsZ61o9
6
+ ceTaskUrl=https://sonar-next.connectors.stg.smartling.net/api/ce/task?id=AYzZdu3tRe7rJHsZ61o9
@@ -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,65 @@
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
+ this.set("dueDate", dueDate ? dueDate.toISOString() : null);
34
+
35
+ return this as unknown as T;
36
+ }
37
+
38
+ setReferenceNumber(referenceNumber: string | null): T {
39
+ this.set("referenceNumber", referenceNumber);
40
+
41
+ return this as unknown as T;
42
+ }
43
+
44
+ setCallbackUrl(callbackUrl: string | null): T {
45
+ if (callbackUrl && (callbackUrl.length > 8192)) {
46
+ throw new SmartlingException("Job callback URL should be not greater than 8192 characters.");
47
+ }
48
+
49
+ this.set("callbackUrl", callbackUrl);
50
+
51
+ return this as unknown as T;
52
+ }
53
+
54
+ setCallbackMethod(callbackMethod: CallbackMethod | null): T {
55
+ this.set("callbackMethod", callbackMethod);
56
+
57
+ return this as unknown as T;
58
+ }
59
+
60
+ setCustomFields(customFields: CustomFieldBasicRequest[]): T {
61
+ this.set("customFields", customFields);
62
+
63
+ return this as unknown as T;
64
+ }
65
+ }
@@ -0,0 +1,4 @@
1
+ import { CreateUpdateJobBaseParameters } from "./create-update-job-base-parameters";
2
+
3
+ export class UpdateJobParameters extends CreateUpdateJobBaseParameters<UpdateJobParameters> {
4
+ }
@@ -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,46 @@
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
+ this.set("dueDate", dueDate ? dueDate.toISOString() : null);
23
+ return this;
24
+ }
25
+ setReferenceNumber(referenceNumber) {
26
+ this.set("referenceNumber", referenceNumber);
27
+ return this;
28
+ }
29
+ setCallbackUrl(callbackUrl) {
30
+ if (callbackUrl && (callbackUrl.length > 8192)) {
31
+ throw new exception_1.SmartlingException("Job callback URL should be not greater than 8192 characters.");
32
+ }
33
+ this.set("callbackUrl", callbackUrl);
34
+ return this;
35
+ }
36
+ setCallbackMethod(callbackMethod) {
37
+ this.set("callbackMethod", callbackMethod);
38
+ return this;
39
+ }
40
+ setCustomFields(customFields) {
41
+ this.set("customFields", customFields);
42
+ return this;
43
+ }
44
+ }
45
+ exports.CreateUpdateJobBaseParameters = CreateUpdateJobBaseParameters;
46
+ //# 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,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;AAvDD,sEAuDC"}
@@ -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"}
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,6 +79,7 @@ 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";
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,6 +95,7 @@ __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);
@@ -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,8DAA4C;AAC5C,+EAA6D;AAC7D,mGAAiF;AACjF,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.7.0",
3
+ "version": "2.8.1",
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,6 +79,7 @@ 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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smartling-api-sdk-nodejs",
3
- "version": "2.7.0",
3
+ "version": "2.8.1",
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