Skip to content

Commit e8a7efb

Browse files
fix: response type definitions for APIs
- WorkItemTypes Response - GetProjectMembers Response - IssueSearch Response - State Response (without slug) make appInstallationId optional in getAppInstallations endpoint bump version to 0.1.2
1 parent d55e07a commit e8a7efb

File tree

12 files changed

+161
-76
lines changed

12 files changed

+161
-76
lines changed

.openapi-generator/FILES

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.gitignore
22
.npmignore
33
README.md
4+
eslint.config.mjs
45
package.json
56
src/apis/AssetsApi.ts
67
src/apis/CyclesApi.ts
@@ -52,6 +53,7 @@ src/models/IssuePropertyValueAPI.ts
5253
src/models/IssuePropertyValueAPIRequest.ts
5354
src/models/IssueRequest.ts
5455
src/models/IssueSearch.ts
56+
src/models/IssueSearchItem.ts
5557
src/models/IssueTypeAPI.ts
5658
src/models/IssueTypeAPIRequest.ts
5759
src/models/IssueWorkLogAPI.ts
@@ -115,5 +117,7 @@ src/models/TypeEnum.ts
115117
src/models/UserAssetUploadRequest.ts
116118
src/models/UserLite.ts
117119
src/models/index.ts
120+
src/oauth/api.ts
121+
src/oauth/models.ts
118122
src/runtime.ts
119123
tsconfig.json

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## @makeplane/plane-node-sdk@0.1.1
1+
## @makeplane/plane-node-sdk@0.1.2
22

33
This generator creates TypeScript/JavaScript client that utilizes [Fetch API](https://fetch.spec.whatwg.org/). The generated Node module can be used in the following environments:
44

@@ -36,7 +36,7 @@ navigate to the folder of your consuming project and run one of the following co
3636
_published:_
3737

3838
```
39-
npm install @makeplane/[email protected].1 --save
39+
npm install @makeplane/[email protected].2 --save
4040
```
4141

4242
_unPublished (not recommended):_

package-lock.json

Lines changed: 5 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
{
22
"name": "@makeplane/plane-node-sdk",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"description": "Node SDK for Plane",
55
"author": "Plane <[email protected]>",
66
"repository": {
77
"type": "git",
88
"url": "https://github.com/makeplane/plane-node-sdk.git"
99
},
10+
"engines": {
11+
"node": ">=18.0.0"
12+
},
1013
"main": "./dist/index.js",
1114
"typings": "./dist/index.d.ts",
1215
"scripts": {

src/apis/MembersApi.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class MembersApi extends runtime.BaseAPI {
4242
* Retrieve all users who are members of the specified project.
4343
* List project members
4444
*/
45-
async getProjectMembersRaw(requestParameters: GetProjectMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UserLite>> {
45+
async getProjectMembersRaw(requestParameters: GetProjectMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<UserLite>>> {
4646
if (requestParameters['projectId'] == null) {
4747
throw new runtime.RequiredError(
4848
'projectId',
@@ -82,14 +82,14 @@ export class MembersApi extends runtime.BaseAPI {
8282
query: queryParameters,
8383
}, initOverrides);
8484

85-
return new runtime.JSONApiResponse(response, (jsonValue) => UserLiteFromJSON(jsonValue));
85+
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(UserLiteFromJSON));
8686
}
8787

8888
/**
8989
* Retrieve all users who are members of the specified project.
9090
* List project members
9191
*/
92-
async getProjectMembers(requestParameters: GetProjectMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UserLite> {
92+
async getProjectMembers(requestParameters: GetProjectMembersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<UserLite>> {
9393
const response = await this.getProjectMembersRaw(requestParameters, initOverrides);
9494
return await response.value();
9595
}

src/apis/WorkItemTypesApi.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ export class WorkItemTypesApi extends runtime.BaseAPI {
194194
* List all issue types for a project
195195
* List issue types
196196
*/
197-
async listIssueTypesRaw(requestParameters: ListIssueTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<IssueTypeAPI>> {
197+
async listIssueTypesRaw(requestParameters: ListIssueTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<IssueTypeAPI>>> {
198198
if (requestParameters['projectId'] == null) {
199199
throw new runtime.RequiredError(
200200
'projectId',
@@ -234,14 +234,14 @@ export class WorkItemTypesApi extends runtime.BaseAPI {
234234
query: queryParameters,
235235
}, initOverrides);
236236

237-
return new runtime.JSONApiResponse(response, (jsonValue) => IssueTypeAPIFromJSON(jsonValue));
237+
return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(IssueTypeAPIFromJSON));
238238
}
239239

240240
/**
241241
* List all issue types for a project
242242
* List issue types
243243
*/
244-
async listIssueTypes(requestParameters: ListIssueTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<IssueTypeAPI> {
244+
async listIssueTypes(requestParameters: ListIssueTypesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<IssueTypeAPI>> {
245245
const response = await this.listIssueTypesRaw(requestParameters, initOverrides);
246246
return await response.value();
247247
}

src/models/IssueSearch.ts

Lines changed: 14 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@
1212
*/
1313

1414
import { mapValues } from '../runtime';
15+
import type { IssueSearchItem } from './IssueSearchItem';
16+
import {
17+
IssueSearchItemFromJSON,
18+
IssueSearchItemFromJSONTyped,
19+
IssueSearchItemToJSON,
20+
IssueSearchItemToJSONTyped,
21+
} from './IssueSearchItem';
22+
1523
/**
1624
* Serializer for work item search result data formatting.
1725
*
@@ -22,53 +30,18 @@ import { mapValues } from '../runtime';
2230
*/
2331
export interface IssueSearch {
2432
/**
25-
* Issue ID
26-
* @type {string}
27-
* @memberof IssueSearch
28-
*/
29-
id: string;
30-
/**
31-
* Issue name
32-
* @type {string}
33-
* @memberof IssueSearch
34-
*/
35-
name: string;
36-
/**
37-
* Issue sequence ID
38-
* @type {string}
39-
* @memberof IssueSearch
40-
*/
41-
sequenceId: string;
42-
/**
43-
* Project identifier
44-
* @type {string}
45-
* @memberof IssueSearch
46-
*/
47-
projectIdentifier: string;
48-
/**
49-
* Project ID
50-
* @type {string}
51-
* @memberof IssueSearch
52-
*/
53-
projectId: string;
54-
/**
55-
* Workspace slug
56-
* @type {string}
33+
* Array of search result issues
34+
* @type {Array<IssueSearchItem>}
5735
* @memberof IssueSearch
5836
*/
59-
workspaceSlug: string;
37+
issues: Array<IssueSearchItem>;
6038
}
6139

6240
/**
6341
* Check if a given object implements the IssueSearch interface.
6442
*/
6543
export function instanceOfIssueSearch(value: object): value is IssueSearch {
66-
if (!('id' in value) || value['id'] === undefined) return false;
67-
if (!('name' in value) || value['name'] === undefined) return false;
68-
if (!('sequenceId' in value) || value['sequenceId'] === undefined) return false;
69-
if (!('projectIdentifier' in value) || value['projectIdentifier'] === undefined) return false;
70-
if (!('projectId' in value) || value['projectId'] === undefined) return false;
71-
if (!('workspaceSlug' in value) || value['workspaceSlug'] === undefined) return false;
44+
if (!('issues' in value) || value['issues'] === undefined) return false;
7245
return true;
7346
}
7447

@@ -82,12 +55,7 @@ export function IssueSearchFromJSONTyped(json: any, ignoreDiscriminator: boolean
8255
}
8356
return {
8457

85-
'id': json['id'],
86-
'name': json['name'],
87-
'sequenceId': json['sequence_id'],
88-
'projectIdentifier': json['project__identifier'],
89-
'projectId': json['project_id'],
90-
'workspaceSlug': json['workspace__slug'],
58+
'issues': ((json['issues'] as Array<any>).map(IssueSearchItemFromJSON)),
9159
};
9260
}
9361

@@ -102,12 +70,7 @@ export function IssueSearchToJSONTyped(value?: IssueSearch | null, ignoreDiscrim
10270

10371
return {
10472

105-
'id': value['id'],
106-
'name': value['name'],
107-
'sequence_id': value['sequenceId'],
108-
'project__identifier': value['projectIdentifier'],
109-
'project_id': value['projectId'],
110-
'workspace__slug': value['workspaceSlug'],
73+
'issues': ((value['issues'] as Array<any>).map(IssueSearchItemToJSON)),
11174
};
11275
}
11376

src/models/IssueSearchItem.ts

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/* tslint:disable */
2+
/* eslint-disable */
3+
/**
4+
* The Plane REST API
5+
* The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction).
6+
*
7+
* The version of the API Spec: 0.0.1
8+
* Contact: [email protected]
9+
*
10+
* NOTE: This class is auto generated.
11+
* Do not edit the class manually.
12+
*/
13+
14+
import { mapValues } from '../runtime';
15+
/**
16+
* Individual issue component for search results.
17+
*
18+
* Provides standardized search result structure including work item identifiers,
19+
* project context, and workspace information for search API responses.
20+
* @export
21+
* @interface IssueSearchItem
22+
*/
23+
export interface IssueSearchItem {
24+
/**
25+
* Issue ID
26+
* @type {string}
27+
* @memberof IssueSearchItem
28+
*/
29+
id: string;
30+
/**
31+
* Issue name
32+
* @type {string}
33+
* @memberof IssueSearchItem
34+
*/
35+
name: string;
36+
/**
37+
* Issue sequence ID
38+
* @type {string}
39+
* @memberof IssueSearchItem
40+
*/
41+
sequenceId: string;
42+
/**
43+
* Project identifier
44+
* @type {string}
45+
* @memberof IssueSearchItem
46+
*/
47+
projectIdentifier: string;
48+
/**
49+
* Project ID
50+
* @type {string}
51+
* @memberof IssueSearchItem
52+
*/
53+
projectId: string;
54+
/**
55+
* Workspace slug
56+
* @type {string}
57+
* @memberof IssueSearchItem
58+
*/
59+
workspaceSlug: string;
60+
}
61+
62+
/**
63+
* Check if a given object implements the IssueSearchItem interface.
64+
*/
65+
export function instanceOfIssueSearchItem(value: object): value is IssueSearchItem {
66+
if (!('id' in value) || value['id'] === undefined) return false;
67+
if (!('name' in value) || value['name'] === undefined) return false;
68+
if (!('sequenceId' in value) || value['sequenceId'] === undefined) return false;
69+
if (!('projectIdentifier' in value) || value['projectIdentifier'] === undefined) return false;
70+
if (!('projectId' in value) || value['projectId'] === undefined) return false;
71+
if (!('workspaceSlug' in value) || value['workspaceSlug'] === undefined) return false;
72+
return true;
73+
}
74+
75+
export function IssueSearchItemFromJSON(json: any): IssueSearchItem {
76+
return IssueSearchItemFromJSONTyped(json, false);
77+
}
78+
79+
export function IssueSearchItemFromJSONTyped(json: any, ignoreDiscriminator: boolean): IssueSearchItem {
80+
if (json == null) {
81+
return json;
82+
}
83+
return {
84+
85+
'id': json['id'],
86+
'name': json['name'],
87+
'sequenceId': json['sequence_id'],
88+
'projectIdentifier': json['project__identifier'],
89+
'projectId': json['project_id'],
90+
'workspaceSlug': json['workspace__slug'],
91+
};
92+
}
93+
94+
export function IssueSearchItemToJSON(json: any): IssueSearchItem {
95+
return IssueSearchItemToJSONTyped(json, false);
96+
}
97+
98+
export function IssueSearchItemToJSONTyped(value?: IssueSearchItem | null, ignoreDiscriminator: boolean = false): any {
99+
if (value == null) {
100+
return value;
101+
}
102+
103+
return {
104+
105+
'id': value['id'],
106+
'name': value['name'],
107+
'sequence_id': value['sequenceId'],
108+
'project__identifier': value['projectIdentifier'],
109+
'project_id': value['projectId'],
110+
'workspace__slug': value['workspaceSlug'],
111+
};
112+
}
113+

src/models/State.ts

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,6 @@ export interface State {
7171
* @memberof State
7272
*/
7373
color: string;
74-
/**
75-
*
76-
* @type {string}
77-
* @memberof State
78-
*/
79-
readonly slug?: string;
8074
/**
8175
*
8276
* @type {number}
@@ -167,7 +161,6 @@ export function StateFromJSONTyped(json: any, ignoreDiscriminator: boolean): Sta
167161
'name': json['name'],
168162
'description': json['description'] == null ? undefined : json['description'],
169163
'color': json['color'],
170-
'slug': json['slug'] == null ? undefined : json['slug'],
171164
'sequence': json['sequence'] == null ? undefined : json['sequence'],
172165
'group': json['group'] == null ? undefined : GroupEnumFromJSON(json['group']),
173166
'isTriage': json['is_triage'] == null ? undefined : json['is_triage'],
@@ -185,7 +178,7 @@ export function StateToJSON(json: any): State {
185178
return StateToJSONTyped(json, false);
186179
}
187180

188-
export function StateToJSONTyped(value?: Omit<State, 'id'|'created_at'|'updated_at'|'deleted_at'|'slug'|'created_by'|'updated_by'|'project'|'workspace'> | null, ignoreDiscriminator: boolean = false): any {
181+
export function StateToJSONTyped(value?: Omit<State, 'id'|'created_at'|'updated_at'|'deleted_at'|'created_by'|'updated_by'|'project'|'workspace'> | null, ignoreDiscriminator: boolean = false): any {
189182
if (value == null) {
190183
return value;
191184
}

src/models/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export * from './IssuePropertyValueAPI';
3131
export * from './IssuePropertyValueAPIRequest';
3232
export * from './IssueRequest';
3333
export * from './IssueSearch';
34+
export * from './IssueSearchItem';
3435
export * from './IssueTypeAPI';
3536
export * from './IssueTypeAPIRequest';
3637
export * from './IssueWorkLogAPI';

0 commit comments

Comments
 (0)