smartling-api-sdk-nodejs 2.33.0 → 2.34.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 (158) hide show
  1. package/api/issues/dto/create-issue-string-dto.ts +4 -0
  2. package/api/issues/dto/issue-answered-dto.ts +3 -0
  3. package/api/issues/dto/issue-assignee-dto.ts +3 -0
  4. package/api/issues/dto/issue-changed-type-dto.ts +8 -0
  5. package/api/issues/dto/issue-comment-dto.ts +7 -0
  6. package/api/issues/dto/issue-dto.ts +30 -0
  7. package/api/issues/dto/issue-severity-level-dto.ts +5 -0
  8. package/api/issues/dto/issue-sort-by-dto.ts +5 -0
  9. package/api/issues/dto/issue-sort-item-dto.ts +7 -0
  10. package/api/issues/dto/issue-state-dto.ts +6 -0
  11. package/api/issues/dto/issue-string-dto.ts +4 -0
  12. package/api/issues/dto/issue-text-dto.ts +4 -0
  13. package/api/issues/dto/issues-count-dto.ts +3 -0
  14. package/api/issues/dto/job-filter-dto.ts +6 -0
  15. package/api/issues/dto/string-filter-dto.ts +4 -0
  16. package/api/issues/enums/issue-severity-level.ts +5 -0
  17. package/api/issues/enums/issue-sort-field.ts +14 -0
  18. package/api/issues/enums/issue-state.ts +4 -0
  19. package/api/issues/enums/issue-sub-type.ts +10 -0
  20. package/api/issues/enums/issue-type.ts +4 -0
  21. package/api/issues/enums/issue-watching-state.ts +4 -0
  22. package/api/issues/enums/job-filter-presence.ts +4 -0
  23. package/api/issues/index.ts +238 -0
  24. package/api/issues/params/base-issues-filter-parameters.ts +102 -0
  25. package/api/issues/params/count-account-issues-parameters.ts +8 -0
  26. package/api/issues/params/count-project-issues-parameters.ts +3 -0
  27. package/api/issues/params/create-issue-comment-parameters.ts +12 -0
  28. package/api/issues/params/create-issue-parameters.ts +41 -0
  29. package/api/issues/params/edit-issue-comment-parameters.ts +12 -0
  30. package/api/issues/params/edit-issue-parameters.ts +12 -0
  31. package/api/issues/params/find-account-issues-parameters.ts +31 -0
  32. package/api/issues/params/find-project-issues-parameters.ts +26 -0
  33. package/api/issues/params/update-issue-answered-parameters.ts +8 -0
  34. package/api/issues/params/update-issue-assignee-parameters.ts +12 -0
  35. package/api/issues/params/update-issue-severity-level-parameters.ts +9 -0
  36. package/api/issues/params/update-issue-state-parameters.ts +9 -0
  37. package/api/issues/params/update-issue-type-parameters.ts +20 -0
  38. package/built/api/issues/dto/create-issue-string-dto.d.ts +4 -0
  39. package/built/api/issues/dto/create-issue-string-dto.js +3 -0
  40. package/built/api/issues/dto/create-issue-string-dto.js.map +1 -0
  41. package/built/api/issues/dto/issue-answered-dto.d.ts +3 -0
  42. package/built/api/issues/dto/issue-answered-dto.js +3 -0
  43. package/built/api/issues/dto/issue-answered-dto.js.map +1 -0
  44. package/built/api/issues/dto/issue-assignee-dto.d.ts +3 -0
  45. package/built/api/issues/dto/issue-assignee-dto.js +3 -0
  46. package/built/api/issues/dto/issue-assignee-dto.js.map +1 -0
  47. package/built/api/issues/dto/issue-changed-type-dto.d.ts +7 -0
  48. package/built/api/issues/dto/issue-changed-type-dto.js +3 -0
  49. package/built/api/issues/dto/issue-changed-type-dto.js.map +1 -0
  50. package/built/api/issues/dto/issue-comment-dto.d.ts +7 -0
  51. package/built/api/issues/dto/issue-comment-dto.js +3 -0
  52. package/built/api/issues/dto/issue-comment-dto.js.map +1 -0
  53. package/built/api/issues/dto/issue-dto.d.ts +29 -0
  54. package/built/api/issues/dto/issue-dto.js +3 -0
  55. package/built/api/issues/dto/issue-dto.js.map +1 -0
  56. package/built/api/issues/dto/issue-severity-level-dto.d.ts +4 -0
  57. package/built/api/issues/dto/issue-severity-level-dto.js +3 -0
  58. package/built/api/issues/dto/issue-severity-level-dto.js.map +1 -0
  59. package/built/api/issues/dto/issue-sort-by-dto.d.ts +4 -0
  60. package/built/api/issues/dto/issue-sort-by-dto.js +3 -0
  61. package/built/api/issues/dto/issue-sort-by-dto.js.map +1 -0
  62. package/built/api/issues/dto/issue-sort-item-dto.d.ts +6 -0
  63. package/built/api/issues/dto/issue-sort-item-dto.js +3 -0
  64. package/built/api/issues/dto/issue-sort-item-dto.js.map +1 -0
  65. package/built/api/issues/dto/issue-state-dto.d.ts +5 -0
  66. package/built/api/issues/dto/issue-state-dto.js +3 -0
  67. package/built/api/issues/dto/issue-state-dto.js.map +1 -0
  68. package/built/api/issues/dto/issue-string-dto.d.ts +4 -0
  69. package/built/api/issues/dto/issue-string-dto.js +3 -0
  70. package/built/api/issues/dto/issue-string-dto.js.map +1 -0
  71. package/built/api/issues/dto/issue-text-dto.d.ts +4 -0
  72. package/built/api/issues/dto/issue-text-dto.js +3 -0
  73. package/built/api/issues/dto/issue-text-dto.js.map +1 -0
  74. package/built/api/issues/dto/issues-count-dto.d.ts +3 -0
  75. package/built/api/issues/dto/issues-count-dto.js +3 -0
  76. package/built/api/issues/dto/issues-count-dto.js.map +1 -0
  77. package/built/api/issues/dto/job-filter-dto.d.ts +5 -0
  78. package/built/api/issues/dto/job-filter-dto.js +3 -0
  79. package/built/api/issues/dto/job-filter-dto.js.map +1 -0
  80. package/built/api/issues/dto/string-filter-dto.d.ts +4 -0
  81. package/built/api/issues/dto/string-filter-dto.js +3 -0
  82. package/built/api/issues/dto/string-filter-dto.js.map +1 -0
  83. package/built/api/issues/enums/issue-severity-level.d.ts +5 -0
  84. package/built/api/issues/enums/issue-severity-level.js +10 -0
  85. package/built/api/issues/enums/issue-severity-level.js.map +1 -0
  86. package/built/api/issues/enums/issue-sort-field.d.ts +14 -0
  87. package/built/api/issues/enums/issue-sort-field.js +19 -0
  88. package/built/api/issues/enums/issue-sort-field.js.map +1 -0
  89. package/built/api/issues/enums/issue-state.d.ts +4 -0
  90. package/built/api/issues/enums/issue-state.js +9 -0
  91. package/built/api/issues/enums/issue-state.js.map +1 -0
  92. package/built/api/issues/enums/issue-sub-type.d.ts +10 -0
  93. package/built/api/issues/enums/issue-sub-type.js +15 -0
  94. package/built/api/issues/enums/issue-sub-type.js.map +1 -0
  95. package/built/api/issues/enums/issue-type.d.ts +4 -0
  96. package/built/api/issues/enums/issue-type.js +9 -0
  97. package/built/api/issues/enums/issue-type.js.map +1 -0
  98. package/built/api/issues/enums/issue-watching-state.d.ts +4 -0
  99. package/built/api/issues/enums/issue-watching-state.js +9 -0
  100. package/built/api/issues/enums/issue-watching-state.js.map +1 -0
  101. package/built/api/issues/enums/job-filter-presence.d.ts +4 -0
  102. package/built/api/issues/enums/job-filter-presence.js +9 -0
  103. package/built/api/issues/enums/job-filter-presence.js.map +1 -0
  104. package/built/api/issues/index.d.ts +47 -0
  105. package/built/api/issues/index.js +112 -0
  106. package/built/api/issues/index.js.map +1 -0
  107. package/built/api/issues/params/base-issues-filter-parameters.d.ts +27 -0
  108. package/built/api/issues/params/base-issues-filter-parameters.js +83 -0
  109. package/built/api/issues/params/base-issues-filter-parameters.js.map +1 -0
  110. package/built/api/issues/params/count-account-issues-parameters.d.ts +4 -0
  111. package/built/api/issues/params/count-account-issues-parameters.js +12 -0
  112. package/built/api/issues/params/count-account-issues-parameters.js.map +1 -0
  113. package/built/api/issues/params/count-project-issues-parameters.d.ts +3 -0
  114. package/built/api/issues/params/count-project-issues-parameters.js +8 -0
  115. package/built/api/issues/params/count-project-issues-parameters.js.map +1 -0
  116. package/built/api/issues/params/create-issue-comment-parameters.d.ts +4 -0
  117. package/built/api/issues/params/create-issue-comment-parameters.js +16 -0
  118. package/built/api/issues/params/create-issue-comment-parameters.js.map +1 -0
  119. package/built/api/issues/params/create-issue-parameters.d.ts +13 -0
  120. package/built/api/issues/params/create-issue-parameters.js +36 -0
  121. package/built/api/issues/params/create-issue-parameters.js.map +1 -0
  122. package/built/api/issues/params/edit-issue-comment-parameters.d.ts +4 -0
  123. package/built/api/issues/params/edit-issue-comment-parameters.js +16 -0
  124. package/built/api/issues/params/edit-issue-comment-parameters.js.map +1 -0
  125. package/built/api/issues/params/edit-issue-parameters.d.ts +4 -0
  126. package/built/api/issues/params/edit-issue-parameters.js +16 -0
  127. package/built/api/issues/params/edit-issue-parameters.js.map +1 -0
  128. package/built/api/issues/params/find-account-issues-parameters.d.ts +8 -0
  129. package/built/api/issues/params/find-account-issues-parameters.js +31 -0
  130. package/built/api/issues/params/find-account-issues-parameters.js.map +1 -0
  131. package/built/api/issues/params/find-project-issues-parameters.d.ts +7 -0
  132. package/built/api/issues/params/find-project-issues-parameters.js +27 -0
  133. package/built/api/issues/params/find-project-issues-parameters.js.map +1 -0
  134. package/built/api/issues/params/update-issue-answered-parameters.d.ts +4 -0
  135. package/built/api/issues/params/update-issue-answered-parameters.js +12 -0
  136. package/built/api/issues/params/update-issue-answered-parameters.js.map +1 -0
  137. package/built/api/issues/params/update-issue-assignee-parameters.d.ts +4 -0
  138. package/built/api/issues/params/update-issue-assignee-parameters.js +16 -0
  139. package/built/api/issues/params/update-issue-assignee-parameters.js.map +1 -0
  140. package/built/api/issues/params/update-issue-severity-level-parameters.d.ts +5 -0
  141. package/built/api/issues/params/update-issue-severity-level-parameters.js +12 -0
  142. package/built/api/issues/params/update-issue-severity-level-parameters.js.map +1 -0
  143. package/built/api/issues/params/update-issue-state-parameters.d.ts +5 -0
  144. package/built/api/issues/params/update-issue-state-parameters.js +12 -0
  145. package/built/api/issues/params/update-issue-state-parameters.js.map +1 -0
  146. package/built/api/issues/params/update-issue-type-parameters.d.ts +8 -0
  147. package/built/api/issues/params/update-issue-type-parameters.js +20 -0
  148. package/built/api/issues/params/update-issue-type-parameters.js.map +1 -0
  149. package/built/index.d.ts +37 -0
  150. package/built/index.js +37 -0
  151. package/built/index.js.map +1 -1
  152. package/built/package.json +1 -1
  153. package/built/test/issues.spec.d.ts +1 -0
  154. package/built/test/issues.spec.js +513 -0
  155. package/built/test/issues.spec.js.map +1 -0
  156. package/index.ts +37 -0
  157. package/package.json +1 -1
  158. package/test/issues.spec.ts +624 -0
@@ -0,0 +1,4 @@
1
+ export interface CreateIssueStringDto {
2
+ hashcode: string;
3
+ localeId: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface IssueAnsweredDto {
2
+ answered: boolean;
3
+ }
@@ -0,0 +1,3 @@
1
+ export interface IssueAssigneeDto {
2
+ assigneeUserUid: string;
3
+ }
@@ -0,0 +1,8 @@
1
+ import { IssueSubType } from "../enums/issue-sub-type";
2
+ import { IssueType } from "../enums/issue-type";
3
+
4
+ export interface IssueChangedTypeDto {
5
+ issueTypeCode: IssueType;
6
+ issueSubTypeCode: IssueSubType;
7
+ localeId?: string;
8
+ }
@@ -0,0 +1,7 @@
1
+ export interface IssueCommentDto {
2
+ commentText: string;
3
+ commentTextModifiedDate?: string;
4
+ createdByUserUid: string;
5
+ createdDate: string;
6
+ issueCommentUid: string;
7
+ }
@@ -0,0 +1,30 @@
1
+ import { IssueSeverityLevel } from "../enums/issue-severity-level";
2
+ import { IssueState } from "../enums/issue-state";
3
+ import { IssueSubType } from "../enums/issue-sub-type";
4
+ import { IssueType } from "../enums/issue-type";
5
+ import { IssueStringDto } from "./issue-string-dto";
6
+
7
+ export interface IssueDto {
8
+ answered: boolean;
9
+ createdDate: string;
10
+ lastCommentDate?: string;
11
+ issueSeverityLevelCode: IssueSeverityLevel;
12
+ issueStateCode: IssueState;
13
+ issueSubTypeCode: IssueSubType;
14
+ issueText: string;
15
+ issueTextModifiedDate?: string;
16
+ issueTypeCode: IssueType;
17
+ issueUid: string;
18
+ projectId: string;
19
+ accountUid: string;
20
+ issueNumber: number;
21
+ reportedByUserUid: string;
22
+ resolvedByUserUid?: string;
23
+ assigneeUserUid?: string;
24
+ resolvedDate?: string;
25
+ reopened: boolean;
26
+ reopenedByUserUid?: string;
27
+ reopenedDate?: string;
28
+ string: IssueStringDto;
29
+ issueCommentsCount: number;
30
+ }
@@ -0,0 +1,5 @@
1
+ import { IssueSeverityLevel } from "../enums/issue-severity-level";
2
+
3
+ export interface IssueSeverityLevelDto {
4
+ issueSeverityLevelCode: IssueSeverityLevel;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { IssueSortItemDto } from "./issue-sort-item-dto";
2
+
3
+ export interface IssueSortByDto {
4
+ items: Array<IssueSortItemDto>;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { Order } from "../../parameters/order";
2
+ import { IssueSortField } from "../enums/issue-sort-field";
3
+
4
+ export interface IssueSortItemDto {
5
+ direction: Order;
6
+ fieldName: IssueSortField;
7
+ }
@@ -0,0 +1,6 @@
1
+ import { IssueState } from "../enums/issue-state";
2
+
3
+ export interface IssueStateDto {
4
+ issueStateCode: IssueState;
5
+ reopened: boolean;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface IssueStringDto {
2
+ hashcode: string;
3
+ localeId?: string;
4
+ }
@@ -0,0 +1,4 @@
1
+ export interface IssueTextDto {
2
+ issueText: string;
3
+ issueTextModifiedDate: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ export interface IssuesCountDto {
2
+ count: number;
3
+ }
@@ -0,0 +1,6 @@
1
+ import { JobFilterPresence } from "../enums/job-filter-presence";
2
+
3
+ export interface JobFilterDto {
4
+ jobUids?: Array<string>;
5
+ presence?: JobFilterPresence;
6
+ }
@@ -0,0 +1,4 @@
1
+ export interface StringFilterDto {
2
+ hashcodes?: Array<string>;
3
+ localeIds?: Array<string>;
4
+ }
@@ -0,0 +1,5 @@
1
+ export enum IssueSeverityLevel {
2
+ LOW = "LOW",
3
+ MEDIUM = "MEDIUM",
4
+ HIGH = "HIGH"
5
+ }
@@ -0,0 +1,14 @@
1
+ export enum IssueSortField {
2
+ ISSUE_TYPE_CODE = "issueTypeCode",
3
+ ISSUE_SUB_TYPE_CODE = "issueSubTypeCode",
4
+ ISSUE_STATE_CODE = "issueStateCode",
5
+ CREATED_DATE = "createdDate",
6
+ RESOLVED_DATE = "resolvedDate",
7
+ HASHCODE = "hashcode",
8
+ ISSUE_TEXT = "issueText",
9
+ ISSUE_TEXT_MODIFIED_DATE = "issueTextModifiedDate",
10
+ RESOLVED_BY_USER_UID = "resolvedByUserUid",
11
+ REPORTED_BY_USER_UID = "reportedByUserUid",
12
+ ASSIGNEE_USER_UID = "assigneeUserUid",
13
+ LAST_COMMENT_DATE = "lastCommentDate"
14
+ }
@@ -0,0 +1,4 @@
1
+ export enum IssueState {
2
+ OPENED = "OPENED",
3
+ RESOLVED = "RESOLVED"
4
+ }
@@ -0,0 +1,10 @@
1
+ export enum IssueSubType {
2
+ CLARIFICATION = "CLARIFICATION",
3
+ MISSPELLING = "MISSPELLING",
4
+ POOR_TRANSLATION = "POOR_TRANSLATION",
5
+ DOES_NOT_FIT_SPACE = "DOES_NOT_FIT_SPACE",
6
+ PLACEHOLDER_ISSUE = "PLACEHOLDER_ISSUE",
7
+ REVIEW_TRANSLATION = "REVIEW_TRANSLATION",
8
+ CUSTOM = "CUSTOM",
9
+ MT_ERROR = "MT_ERROR"
10
+ }
@@ -0,0 +1,4 @@
1
+ export enum IssueType {
2
+ SOURCE = "SOURCE",
3
+ TRANSLATION = "TRANSLATION"
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum IssueWatchingState {
2
+ WATCHING = "WATCHING",
3
+ NOT_WATCHING = "NOT_WATCHING"
4
+ }
@@ -0,0 +1,4 @@
1
+ export enum JobFilterPresence {
2
+ HAS_ANY = "HAS_ANY",
3
+ HAS_NOTHING = "HAS_NOTHING"
4
+ }
@@ -0,0 +1,238 @@
1
+ import { SmartlingBaseApi } from "../base/index";
2
+ import { AccessTokenProvider } from "../auth/access-token-provider";
3
+ import { Logger } from "../logger";
4
+ import { CreateIssueParameters } from "./params/create-issue-parameters";
5
+ import { EditIssueParameters } from "./params/edit-issue-parameters";
6
+ import { UpdateIssueStateParameters } from "./params/update-issue-state-parameters";
7
+ import { UpdateIssueAnsweredParameters } from "./params/update-issue-answered-parameters";
8
+ import { UpdateIssueAssigneeParameters } from "./params/update-issue-assignee-parameters";
9
+ import { UpdateIssueSeverityLevelParameters } from "./params/update-issue-severity-level-parameters";
10
+ import { UpdateIssueTypeParameters } from "./params/update-issue-type-parameters";
11
+ import { CreateIssueCommentParameters } from "./params/create-issue-comment-parameters";
12
+ import { EditIssueCommentParameters } from "./params/edit-issue-comment-parameters";
13
+ import { IssueDto } from "./dto/issue-dto";
14
+ import { IssueTextDto } from "./dto/issue-text-dto";
15
+ import { IssueStateDto } from "./dto/issue-state-dto";
16
+ import { IssueAnsweredDto } from "./dto/issue-answered-dto";
17
+ import { IssueAssigneeDto } from "./dto/issue-assignee-dto";
18
+ import { IssueSeverityLevelDto } from "./dto/issue-severity-level-dto";
19
+ import { IssueChangedTypeDto } from "./dto/issue-changed-type-dto";
20
+ import { IssueCommentDto } from "./dto/issue-comment-dto";
21
+ import { SmartlingListResponse } from "../http/smartling-list-response";
22
+ import { CountProjectIssuesParameters } from "./params/count-project-issues-parameters";
23
+ import { FindProjectIssuesParameters } from "./params/find-project-issues-parameters";
24
+ import { CountAccountIssuesParameters } from "./params/count-account-issues-parameters";
25
+ import { FindAccountIssuesParameters } from "./params/find-account-issues-parameters";
26
+ import { IssuesCountDto } from "./dto/issues-count-dto";
27
+
28
+ export class SmartlingIssuesApi extends SmartlingBaseApi {
29
+ constructor(smartlingApiBaseUrl: string, authApi: AccessTokenProvider, logger: Logger) {
30
+ super(logger);
31
+ this.authApi = authApi;
32
+ this.entrypoint = `${smartlingApiBaseUrl}/issues-api/v2`;
33
+ }
34
+
35
+ async createIssue(
36
+ projectId: string,
37
+ params: CreateIssueParameters
38
+ ): Promise<IssueDto> {
39
+ return await this.makeRequest(
40
+ "post",
41
+ `${this.entrypoint}/projects/${projectId}/issues`,
42
+ JSON.stringify(params.export())
43
+ );
44
+ }
45
+
46
+ async editIssue(
47
+ projectId: string,
48
+ issueUid: string,
49
+ params: EditIssueParameters
50
+ ): Promise<IssueTextDto> {
51
+ return await this.makeRequest(
52
+ "put",
53
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/issueText`,
54
+ JSON.stringify(params.export())
55
+ );
56
+ }
57
+
58
+ async openOrCloseIssue(
59
+ projectId: string,
60
+ issueUid: string,
61
+ params: UpdateIssueStateParameters
62
+ ): Promise<IssueStateDto> {
63
+ return await this.makeRequest(
64
+ "put",
65
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/state`,
66
+ JSON.stringify(params.export())
67
+ );
68
+ }
69
+
70
+ async getIssueDetails(
71
+ projectId: string,
72
+ issueUid: string
73
+ ): Promise<IssueDto> {
74
+ return await this.makeRequest(
75
+ "get",
76
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}`
77
+ );
78
+ }
79
+
80
+ async updateIssueAnswered(
81
+ projectId: string,
82
+ issueUid: string,
83
+ params: UpdateIssueAnsweredParameters
84
+ ): Promise<IssueAnsweredDto> {
85
+ return await this.makeRequest(
86
+ "put",
87
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/answered`,
88
+ JSON.stringify(params.export())
89
+ );
90
+ }
91
+
92
+ async updateIssueAssignee(
93
+ projectId: string,
94
+ issueUid: string,
95
+ params: UpdateIssueAssigneeParameters
96
+ ): Promise<IssueAssigneeDto> {
97
+ return await this.makeRequest(
98
+ "put",
99
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/assignee`,
100
+ JSON.stringify(params.export())
101
+ );
102
+ }
103
+
104
+ async deleteIssueAssignee(
105
+ projectId: string,
106
+ issueUid: string
107
+ ): Promise<void> {
108
+ await this.makeRequest(
109
+ "delete",
110
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/assignee`
111
+ );
112
+ }
113
+
114
+ async updateIssueSeverityLevel(
115
+ projectId: string,
116
+ issueUid: string,
117
+ params: UpdateIssueSeverityLevelParameters
118
+ ): Promise<IssueSeverityLevelDto> {
119
+ return await this.makeRequest(
120
+ "put",
121
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/severity-level`,
122
+ JSON.stringify(params.export())
123
+ );
124
+ }
125
+
126
+ async updateIssueType(
127
+ projectId: string,
128
+ issueUid: string,
129
+ params: UpdateIssueTypeParameters
130
+ ): Promise<IssueChangedTypeDto> {
131
+ return await this.makeRequest(
132
+ "put",
133
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/change-type`,
134
+ JSON.stringify(params.export())
135
+ );
136
+ }
137
+
138
+ async getIssueComments(
139
+ projectId: string,
140
+ issueUid: string
141
+ ): Promise<SmartlingListResponse<IssueCommentDto>> {
142
+ return await this.makeRequest(
143
+ "get",
144
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/comments`
145
+ );
146
+ }
147
+
148
+ async addIssueComment(
149
+ projectId: string,
150
+ issueUid: string,
151
+ params: CreateIssueCommentParameters
152
+ ): Promise<IssueCommentDto> {
153
+ return await this.makeRequest(
154
+ "post",
155
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/comments`,
156
+ JSON.stringify(params.export())
157
+ );
158
+ }
159
+
160
+ async updateIssueComment(
161
+ projectId: string,
162
+ issueUid: string,
163
+ issueCommentUid: string,
164
+ params: EditIssueCommentParameters
165
+ ): Promise<IssueCommentDto> {
166
+ return await this.makeRequest(
167
+ "put",
168
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`,
169
+ JSON.stringify(params.export())
170
+ );
171
+ }
172
+
173
+ async getIssueCommentDetails(
174
+ projectId: string,
175
+ issueUid: string,
176
+ issueCommentUid: string
177
+ ): Promise<IssueCommentDto> {
178
+ return await this.makeRequest(
179
+ "get",
180
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`
181
+ );
182
+ }
183
+
184
+ async deleteIssueComment(
185
+ projectId: string,
186
+ issueUid: string,
187
+ issueCommentUid: string
188
+ ): Promise<void> {
189
+ await this.makeRequest(
190
+ "delete",
191
+ `${this.entrypoint}/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`
192
+ );
193
+ }
194
+
195
+ async findProjectIssues(
196
+ projectId: string,
197
+ params: FindProjectIssuesParameters
198
+ ): Promise<SmartlingListResponse<IssueDto>> {
199
+ return await this.makeRequest(
200
+ "post",
201
+ `${this.entrypoint}/projects/${projectId}/issues/list`,
202
+ JSON.stringify(params.export())
203
+ );
204
+ }
205
+
206
+ async countProjectIssues(
207
+ projectId: string,
208
+ params: CountProjectIssuesParameters
209
+ ): Promise<IssuesCountDto> {
210
+ return await this.makeRequest(
211
+ "post",
212
+ `${this.entrypoint}/projects/${projectId}/issues/count`,
213
+ JSON.stringify(params.export())
214
+ );
215
+ }
216
+
217
+ async findAccountIssues(
218
+ accountUid: string,
219
+ params: FindAccountIssuesParameters
220
+ ): Promise<SmartlingListResponse<IssueDto>> {
221
+ return await this.makeRequest(
222
+ "post",
223
+ `${this.entrypoint}/accounts/${accountUid}/issues/list`,
224
+ JSON.stringify(params.export())
225
+ );
226
+ }
227
+
228
+ async countAccountIssues(
229
+ accountUid: string,
230
+ params: CountAccountIssuesParameters
231
+ ): Promise<IssuesCountDto> {
232
+ return await this.makeRequest(
233
+ "post",
234
+ `${this.entrypoint}/accounts/${accountUid}/issues/count`,
235
+ JSON.stringify(params.export())
236
+ );
237
+ }
238
+ }
@@ -0,0 +1,102 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+ import { IssueSeverityLevel } from "../enums/issue-severity-level";
4
+ import { IssueState } from "../enums/issue-state";
5
+ import { IssueSubType } from "../enums/issue-sub-type";
6
+ import { IssueType } from "../enums/issue-type";
7
+ import { IssueWatchingState } from "../enums/issue-watching-state";
8
+ import { JobFilterDto } from "../dto/job-filter-dto";
9
+ import { StringFilterDto } from "../dto/string-filter-dto";
10
+
11
+ export abstract class BaseIssuesFilterParameters extends BaseParameters {
12
+ setCreatedDateBefore(date: string): this {
13
+ this.set("createdDateBefore", date);
14
+ return this;
15
+ }
16
+
17
+ setCreatedDateAfter(date: string): this {
18
+ this.set("createdDateAfter", date);
19
+ return this;
20
+ }
21
+
22
+ setResolvedDateBefore(date: string): this {
23
+ this.set("resolvedDateBefore", date);
24
+ return this;
25
+ }
26
+
27
+ setResolvedDateAfter(date: string): this {
28
+ this.set("resolvedDateAfter", date);
29
+ return this;
30
+ }
31
+
32
+ setAnswered(answered: boolean): this {
33
+ this.set("answered", answered);
34
+ return this;
35
+ }
36
+
37
+ setReopened(reopened: boolean): this {
38
+ this.set("reopened", reopened);
39
+ return this;
40
+ }
41
+
42
+ setHasComments(hasComments: boolean): this {
43
+ this.set("hasComments", hasComments);
44
+ return this;
45
+ }
46
+
47
+ setIssueSeverityLevelCodes(codes: Array<IssueSeverityLevel>): this {
48
+ this.set("issueSeverityLevelCodes", codes);
49
+ return this;
50
+ }
51
+
52
+ setIssueStateCodes(codes: Array<IssueState>): this {
53
+ this.set("issueStateCodes", codes);
54
+ return this;
55
+ }
56
+
57
+ setIssueSubTypeCodes(codes: Array<IssueSubType>): this {
58
+ this.set("issueSubTypeCodes", codes);
59
+ return this;
60
+ }
61
+
62
+ setIssueTypeCodes(codes: Array<IssueType>): this {
63
+ this.set("issueTypeCodes", codes);
64
+ return this;
65
+ }
66
+
67
+ setIssueWatchingStateCode(code: IssueWatchingState): this {
68
+ this.set("issueWatchingStateCode", code);
69
+ return this;
70
+ }
71
+
72
+ setReportedByUserUid(uid: string): this {
73
+ this.set("reportedByUserUid", uid);
74
+ return this;
75
+ }
76
+
77
+ setAssigneeUserUid(uid: string): this {
78
+ this.set("assigneeUserUid", uid);
79
+ return this;
80
+ }
81
+
82
+ setIssueNumbers(numbers: Array<number>): this {
83
+ if (numbers && numbers.length > 1000) {
84
+ throw new SmartlingException("Issue numbers array must not exceed 1000 items");
85
+ }
86
+ this.set("issueNumbers", numbers);
87
+ return this;
88
+ }
89
+
90
+ setJobFilter(jobFilter: JobFilterDto): this {
91
+ if (jobFilter && jobFilter.jobUids && jobFilter.jobUids.length > 1000) {
92
+ throw new SmartlingException("Job filter jobUids array must not exceed 1000 items");
93
+ }
94
+ this.set("jobFilter", jobFilter);
95
+ return this;
96
+ }
97
+
98
+ setStringFilter(stringFilter: StringFilterDto): this {
99
+ this.set("stringFilter", stringFilter);
100
+ return this;
101
+ }
102
+ }
@@ -0,0 +1,8 @@
1
+ import { BaseIssuesFilterParameters } from "./base-issues-filter-parameters";
2
+
3
+ export class CountAccountIssuesParameters extends BaseIssuesFilterParameters {
4
+ setProjectIds(projectIds: Array<string>): this {
5
+ this.set("projectIds", projectIds);
6
+ return this;
7
+ }
8
+ }
@@ -0,0 +1,3 @@
1
+ import { BaseIssuesFilterParameters } from "./base-issues-filter-parameters";
2
+
3
+ export class CountProjectIssuesParameters extends BaseIssuesFilterParameters {}
@@ -0,0 +1,12 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+
4
+ export class CreateIssueCommentParameters extends BaseParameters {
5
+ setCommentText(commentText: string): CreateIssueCommentParameters {
6
+ if (commentText && commentText.length > 4000) {
7
+ throw new SmartlingException("Comment text length must not exceed 4000 characters");
8
+ }
9
+ this.set("commentText", commentText);
10
+ return this;
11
+ }
12
+ }
@@ -0,0 +1,41 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+ import { IssueSeverityLevel } from "../enums/issue-severity-level";
4
+ import { IssueSubType } from "../enums/issue-sub-type";
5
+ import { IssueType } from "../enums/issue-type";
6
+ import { CreateIssueStringDto } from "../dto/create-issue-string-dto";
7
+
8
+ export class CreateIssueParameters extends BaseParameters {
9
+ setIssueText(issueText: string): CreateIssueParameters {
10
+ if (issueText && issueText.length > 4000) {
11
+ throw new SmartlingException("Issue text length must not exceed 4000 characters");
12
+ }
13
+ this.set("issueText", issueText);
14
+ return this;
15
+ }
16
+
17
+ setIssueType(issueType: IssueType): CreateIssueParameters {
18
+ this.set("issueTypeCode", issueType);
19
+ return this;
20
+ }
21
+
22
+ setIssueSubType(issueSubType: IssueSubType): CreateIssueParameters {
23
+ this.set("issueSubTypeCode", issueSubType);
24
+ return this;
25
+ }
26
+
27
+ setString(string: CreateIssueStringDto): CreateIssueParameters {
28
+ this.set("string", string);
29
+ return this;
30
+ }
31
+
32
+ setAssigneeUserUid(assigneeUserUid: string): CreateIssueParameters {
33
+ this.set("assigneeUserUid", assigneeUserUid);
34
+ return this;
35
+ }
36
+
37
+ setIssueSeverityLevel(level: IssueSeverityLevel): CreateIssueParameters {
38
+ this.set("issueSeverityLevelCode", level);
39
+ return this;
40
+ }
41
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+
4
+ export class EditIssueCommentParameters extends BaseParameters {
5
+ setCommentText(commentText: string): EditIssueCommentParameters {
6
+ if (commentText && commentText.length > 4000) {
7
+ throw new SmartlingException("Comment text length must not exceed 4000 characters");
8
+ }
9
+ this.set("commentText", commentText);
10
+ return this;
11
+ }
12
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseParameters } from "../../parameters";
2
+ import { SmartlingException } from "../../exception";
3
+
4
+ export class EditIssueParameters extends BaseParameters {
5
+ setIssueText(issueText: string): EditIssueParameters {
6
+ if (issueText && issueText.length > 4000) {
7
+ throw new SmartlingException("Issue text length must not exceed 4000 characters");
8
+ }
9
+ this.set("issueText", issueText);
10
+ return this;
11
+ }
12
+ }
@@ -0,0 +1,31 @@
1
+ import { BaseIssuesFilterParameters } from "./base-issues-filter-parameters";
2
+ import { SmartlingException } from "../../exception";
3
+ import { IssueSortByDto } from "../dto/issue-sort-by-dto";
4
+
5
+ export class FindAccountIssuesParameters extends BaseIssuesFilterParameters {
6
+ setProjectIds(projectIds: Array<string>): this {
7
+ this.set("projectIds", projectIds);
8
+ return this;
9
+ }
10
+
11
+ setLimit(limit: number): this {
12
+ if (limit < 0) {
13
+ throw new SmartlingException("Limit must be non-negative");
14
+ }
15
+ this.set("limit", limit);
16
+ return this;
17
+ }
18
+
19
+ setOffset(offset: number): this {
20
+ if (offset < 0) {
21
+ throw new SmartlingException("Offset must be non-negative");
22
+ }
23
+ this.set("offset", offset);
24
+ return this;
25
+ }
26
+
27
+ setSortBy(sortBy: IssueSortByDto): this {
28
+ this.set("sortBy", sortBy);
29
+ return this;
30
+ }
31
+ }