@flexbe/sdk 0.1.3 → 0.2.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.
- package/dist/browser/client/api-client.js +7 -4
- package/dist/browser/client/pages.js +46 -0
- package/dist/browser/client/token-manager.js +4 -0
- package/dist/cjs/client/api-client.js +7 -4
- package/dist/cjs/client/pages.js +36 -0
- package/dist/cjs/client/token-manager.js +4 -0
- package/dist/esm/client/api-client.js +7 -4
- package/dist/esm/client/pages.js +36 -0
- package/dist/esm/client/token-manager.js +4 -0
- package/dist/types/client/api-client.d.ts +7 -4
- package/dist/types/client/pages.d.ts +23 -1
- package/dist/types/types/index.d.ts +5 -0
- package/dist/types/types/pages.d.ts +20 -7
- package/package.json +1 -1
|
@@ -72,15 +72,18 @@ export class ApiClient {
|
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
get(url, config) {
|
|
75
|
-
return this.request(Object.assign(Object.assign({}, config), { method: 'GET'
|
|
75
|
+
return this.request(Object.assign(Object.assign({}, config), { url, method: 'GET' }));
|
|
76
76
|
}
|
|
77
77
|
post(url, data, config) {
|
|
78
|
-
return this.request(Object.assign(Object.assign({}, config), { method: 'POST',
|
|
78
|
+
return this.request(Object.assign(Object.assign({}, config), { url, method: 'POST', body: JSON.stringify(data) }));
|
|
79
79
|
}
|
|
80
80
|
put(url, data, config) {
|
|
81
|
-
return this.request(Object.assign(Object.assign({}, config), { method: 'PUT',
|
|
81
|
+
return this.request(Object.assign(Object.assign({}, config), { url, method: 'PUT', body: JSON.stringify(data) }));
|
|
82
|
+
}
|
|
83
|
+
patch(url, data, config) {
|
|
84
|
+
return this.request(Object.assign(Object.assign({}, config), { url, method: 'PATCH', body: JSON.stringify(data) }));
|
|
82
85
|
}
|
|
83
86
|
delete(url, config) {
|
|
84
|
-
return this.request(Object.assign(Object.assign({}, config), { method: 'DELETE'
|
|
87
|
+
return this.request(Object.assign(Object.assign({}, config), { url, method: 'DELETE' }));
|
|
85
88
|
}
|
|
86
89
|
}
|
|
@@ -29,4 +29,50 @@ export class Pages {
|
|
|
29
29
|
return response.data;
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Get list of folders for a site
|
|
34
|
+
*/
|
|
35
|
+
getFolders() {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const response = yield this.api.get('/sites/:siteId:/pages-folders');
|
|
38
|
+
return response.data;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a single folder by ID
|
|
43
|
+
*/
|
|
44
|
+
getFolder(folderId) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const response = yield this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
47
|
+
return response.data;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Update a folder's properties
|
|
52
|
+
*/
|
|
53
|
+
updateFolder(folderId, data) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const response = yield this.api.patch(`/sites/:siteId:/pages-folders/${folderId}`, data);
|
|
56
|
+
return response.data;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a new folder
|
|
61
|
+
*/
|
|
62
|
+
createFolder(data) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const response = yield this.api.post('/sites/:siteId:/pages-folders', data);
|
|
65
|
+
return response.data;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Delete a folder and its items
|
|
70
|
+
* @throws {NotFoundException} When the folder is not found
|
|
71
|
+
* @throws {ForbiddenException} When the folder does not belong to the site
|
|
72
|
+
*/
|
|
73
|
+
deleteFolder(folderId) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
yield this.api.delete(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
32
78
|
}
|
|
@@ -144,6 +144,10 @@ export class TokenManager {
|
|
|
144
144
|
catch (error) {
|
|
145
145
|
console.error('Failed to retrieve token:', error);
|
|
146
146
|
this.clearToken();
|
|
147
|
+
// Schedule a retry after REFRESH_CHECK_INTERVAL
|
|
148
|
+
setTimeout(() => {
|
|
149
|
+
void this.retrieveToken();
|
|
150
|
+
}, REFRESH_CHECK_INTERVAL);
|
|
147
151
|
throw error;
|
|
148
152
|
}
|
|
149
153
|
});
|
|
@@ -71,16 +71,19 @@ class ApiClient {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
get(url, config) {
|
|
74
|
-
return this.request({ ...config, method: 'GET'
|
|
74
|
+
return this.request({ ...config, url, method: 'GET' });
|
|
75
75
|
}
|
|
76
76
|
post(url, data, config) {
|
|
77
|
-
return this.request({ ...config, method: 'POST',
|
|
77
|
+
return this.request({ ...config, url, method: 'POST', body: JSON.stringify(data) });
|
|
78
78
|
}
|
|
79
79
|
put(url, data, config) {
|
|
80
|
-
return this.request({ ...config, method: 'PUT',
|
|
80
|
+
return this.request({ ...config, url, method: 'PUT', body: JSON.stringify(data) });
|
|
81
|
+
}
|
|
82
|
+
patch(url, data, config) {
|
|
83
|
+
return this.request({ ...config, url, method: 'PATCH', body: JSON.stringify(data) });
|
|
81
84
|
}
|
|
82
85
|
delete(url, config) {
|
|
83
|
-
return this.request({ ...config, method: 'DELETE'
|
|
86
|
+
return this.request({ ...config, url, method: 'DELETE' });
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
exports.ApiClient = ApiClient;
|
package/dist/cjs/client/pages.js
CHANGED
|
@@ -19,5 +19,41 @@ class Pages {
|
|
|
19
19
|
const response = await this.api.get(`/sites/:siteId:/pages/${pageId}`);
|
|
20
20
|
return response.data;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Get list of folders for a site
|
|
24
|
+
*/
|
|
25
|
+
async getFolders() {
|
|
26
|
+
const response = await this.api.get('/sites/:siteId:/pages-folders');
|
|
27
|
+
return response.data;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get a single folder by ID
|
|
31
|
+
*/
|
|
32
|
+
async getFolder(folderId) {
|
|
33
|
+
const response = await this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
34
|
+
return response.data;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Update a folder's properties
|
|
38
|
+
*/
|
|
39
|
+
async updateFolder(folderId, data) {
|
|
40
|
+
const response = await this.api.patch(`/sites/:siteId:/pages-folders/${folderId}`, data);
|
|
41
|
+
return response.data;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a new folder
|
|
45
|
+
*/
|
|
46
|
+
async createFolder(data) {
|
|
47
|
+
const response = await this.api.post('/sites/:siteId:/pages-folders', data);
|
|
48
|
+
return response.data;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Delete a folder and its items
|
|
52
|
+
* @throws {NotFoundException} When the folder is not found
|
|
53
|
+
* @throws {ForbiddenException} When the folder does not belong to the site
|
|
54
|
+
*/
|
|
55
|
+
async deleteFolder(folderId) {
|
|
56
|
+
await this.api.delete(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
57
|
+
}
|
|
22
58
|
}
|
|
23
59
|
exports.Pages = Pages;
|
|
@@ -132,6 +132,10 @@ class TokenManager {
|
|
|
132
132
|
catch (error) {
|
|
133
133
|
console.error('Failed to retrieve token:', error);
|
|
134
134
|
this.clearToken();
|
|
135
|
+
// Schedule a retry after REFRESH_CHECK_INTERVAL
|
|
136
|
+
setTimeout(() => {
|
|
137
|
+
void this.retrieveToken();
|
|
138
|
+
}, REFRESH_CHECK_INTERVAL);
|
|
135
139
|
throw error;
|
|
136
140
|
}
|
|
137
141
|
}
|
|
@@ -68,15 +68,18 @@ export class ApiClient {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
get(url, config) {
|
|
71
|
-
return this.request({ ...config, method: 'GET'
|
|
71
|
+
return this.request({ ...config, url, method: 'GET' });
|
|
72
72
|
}
|
|
73
73
|
post(url, data, config) {
|
|
74
|
-
return this.request({ ...config, method: 'POST',
|
|
74
|
+
return this.request({ ...config, url, method: 'POST', body: JSON.stringify(data) });
|
|
75
75
|
}
|
|
76
76
|
put(url, data, config) {
|
|
77
|
-
return this.request({ ...config, method: 'PUT',
|
|
77
|
+
return this.request({ ...config, url, method: 'PUT', body: JSON.stringify(data) });
|
|
78
|
+
}
|
|
79
|
+
patch(url, data, config) {
|
|
80
|
+
return this.request({ ...config, url, method: 'PATCH', body: JSON.stringify(data) });
|
|
78
81
|
}
|
|
79
82
|
delete(url, config) {
|
|
80
|
-
return this.request({ ...config, method: 'DELETE'
|
|
83
|
+
return this.request({ ...config, url, method: 'DELETE' });
|
|
81
84
|
}
|
|
82
85
|
}
|
package/dist/esm/client/pages.js
CHANGED
|
@@ -16,4 +16,40 @@ export class Pages {
|
|
|
16
16
|
const response = await this.api.get(`/sites/:siteId:/pages/${pageId}`);
|
|
17
17
|
return response.data;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Get list of folders for a site
|
|
21
|
+
*/
|
|
22
|
+
async getFolders() {
|
|
23
|
+
const response = await this.api.get('/sites/:siteId:/pages-folders');
|
|
24
|
+
return response.data;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get a single folder by ID
|
|
28
|
+
*/
|
|
29
|
+
async getFolder(folderId) {
|
|
30
|
+
const response = await this.api.get(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
31
|
+
return response.data;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Update a folder's properties
|
|
35
|
+
*/
|
|
36
|
+
async updateFolder(folderId, data) {
|
|
37
|
+
const response = await this.api.patch(`/sites/:siteId:/pages-folders/${folderId}`, data);
|
|
38
|
+
return response.data;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create a new folder
|
|
42
|
+
*/
|
|
43
|
+
async createFolder(data) {
|
|
44
|
+
const response = await this.api.post('/sites/:siteId:/pages-folders', data);
|
|
45
|
+
return response.data;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Delete a folder and its items
|
|
49
|
+
* @throws {NotFoundException} When the folder is not found
|
|
50
|
+
* @throws {ForbiddenException} When the folder does not belong to the site
|
|
51
|
+
*/
|
|
52
|
+
async deleteFolder(folderId) {
|
|
53
|
+
await this.api.delete(`/sites/:siteId:/pages-folders/${folderId}`);
|
|
54
|
+
}
|
|
19
55
|
}
|
|
@@ -129,6 +129,10 @@ export class TokenManager {
|
|
|
129
129
|
catch (error) {
|
|
130
130
|
console.error('Failed to retrieve token:', error);
|
|
131
131
|
this.clearToken();
|
|
132
|
+
// Schedule a retry after REFRESH_CHECK_INTERVAL
|
|
133
|
+
setTimeout(() => {
|
|
134
|
+
void this.retrieveToken();
|
|
135
|
+
}, REFRESH_CHECK_INTERVAL);
|
|
132
136
|
throw error;
|
|
133
137
|
}
|
|
134
138
|
}
|
|
@@ -7,15 +7,18 @@ export declare class ApiClient {
|
|
|
7
7
|
private buildUrl;
|
|
8
8
|
private request;
|
|
9
9
|
get<T>(url: string, config?: RequestInit & {
|
|
10
|
-
params?:
|
|
10
|
+
params?: object;
|
|
11
11
|
}): Promise<FlexbeResponse<T>>;
|
|
12
12
|
post<T>(url: string, data?: unknown, config?: RequestInit & {
|
|
13
|
-
params?:
|
|
13
|
+
params?: object;
|
|
14
14
|
}): Promise<FlexbeResponse<T>>;
|
|
15
15
|
put<T>(url: string, data?: unknown, config?: RequestInit & {
|
|
16
|
-
params?:
|
|
16
|
+
params?: object;
|
|
17
|
+
}): Promise<FlexbeResponse<T>>;
|
|
18
|
+
patch<T>(url: string, data?: unknown, config?: RequestInit & {
|
|
19
|
+
params?: object;
|
|
17
20
|
}): Promise<FlexbeResponse<T>>;
|
|
18
21
|
delete<T>(url: string, config?: RequestInit & {
|
|
19
|
-
params?:
|
|
22
|
+
params?: object;
|
|
20
23
|
}): Promise<FlexbeResponse<T>>;
|
|
21
24
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Page, GetPagesParams, PageListResponse } from '../types/pages';
|
|
1
|
+
import { Page, GetPagesParams, PageListResponse, PageFolder, PageFolderListResponse, UpdateFolderParams, CreateFolderParams } from '../types/pages';
|
|
2
2
|
import { ApiClient } from './api-client';
|
|
3
3
|
export declare class Pages {
|
|
4
4
|
private readonly api;
|
|
@@ -11,4 +11,26 @@ export declare class Pages {
|
|
|
11
11
|
* Get a single page by ID
|
|
12
12
|
*/
|
|
13
13
|
getPage(pageId: number): Promise<Page>;
|
|
14
|
+
/**
|
|
15
|
+
* Get list of folders for a site
|
|
16
|
+
*/
|
|
17
|
+
getFolders(): Promise<PageFolderListResponse>;
|
|
18
|
+
/**
|
|
19
|
+
* Get a single folder by ID
|
|
20
|
+
*/
|
|
21
|
+
getFolder(folderId: number): Promise<PageFolder>;
|
|
22
|
+
/**
|
|
23
|
+
* Update a folder's properties
|
|
24
|
+
*/
|
|
25
|
+
updateFolder(folderId: number, data: UpdateFolderParams): Promise<PageFolder>;
|
|
26
|
+
/**
|
|
27
|
+
* Create a new folder
|
|
28
|
+
*/
|
|
29
|
+
createFolder(data: CreateFolderParams): Promise<PageFolder>;
|
|
30
|
+
/**
|
|
31
|
+
* Delete a folder and its items
|
|
32
|
+
* @throws {NotFoundException} When the folder is not found
|
|
33
|
+
* @throws {ForbiddenException} When the folder does not belong to the site
|
|
34
|
+
*/
|
|
35
|
+
deleteFolder(folderId: number): Promise<void>;
|
|
14
36
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Pagination } from './index';
|
|
1
2
|
export declare enum PageType {
|
|
2
3
|
PAGE = "page",
|
|
3
4
|
FILE = "file",
|
|
@@ -14,28 +15,40 @@ export declare enum PageStatus {
|
|
|
14
15
|
}
|
|
15
16
|
export interface Page {
|
|
16
17
|
id: number;
|
|
17
|
-
siteId: number;
|
|
18
18
|
type: PageType;
|
|
19
19
|
uri: string;
|
|
20
20
|
title: string | null;
|
|
21
21
|
status: PageStatus;
|
|
22
22
|
updatedAt?: Date;
|
|
23
23
|
imgId: number | null;
|
|
24
|
+
folderId: number | null;
|
|
24
25
|
sortIndex: number;
|
|
25
26
|
}
|
|
26
|
-
export interface GetPagesParams
|
|
27
|
+
export interface GetPagesParams {
|
|
27
28
|
offset?: number;
|
|
28
29
|
limit?: number;
|
|
29
30
|
type?: PageType;
|
|
30
31
|
status?: PageStatus;
|
|
31
32
|
search?: string;
|
|
32
|
-
|
|
33
|
-
export interface Pagination {
|
|
34
|
-
limit: number;
|
|
35
|
-
offset: number;
|
|
36
|
-
total: number;
|
|
33
|
+
folderId?: number;
|
|
37
34
|
}
|
|
38
35
|
export interface PageListResponse {
|
|
39
36
|
pages: Page[];
|
|
40
37
|
pagination: Pagination;
|
|
41
38
|
}
|
|
39
|
+
export interface PageFolder {
|
|
40
|
+
id: number;
|
|
41
|
+
title: string;
|
|
42
|
+
sortIndex: number;
|
|
43
|
+
}
|
|
44
|
+
export interface PageFolderListResponse {
|
|
45
|
+
folders: PageFolder[];
|
|
46
|
+
}
|
|
47
|
+
export interface UpdateFolderParams {
|
|
48
|
+
title?: string;
|
|
49
|
+
sortIndex?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface CreateFolderParams {
|
|
52
|
+
title: string;
|
|
53
|
+
sortIndex?: number;
|
|
54
|
+
}
|