Skip to content

Commit 38846f5

Browse files
plateauandspbaijiangjie
authored andcommitted
feat(asset-tree): add favorite folder http apis
1 parent af6254b commit 38846f5

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

src/app/services/http.ts

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,62 @@ export class HttpService {
230230
return this.get<Array<any>>(url);
231231
}
232232

233+
/**
234+
* Get all favorite folders of current user
235+
*/
236+
getFavoriteFolders() {
237+
const url = '/api/v1/assets/favorite-folders/';
238+
return this.get<Array<any>>(url);
239+
}
240+
241+
/**
242+
* Create a favorite folder
243+
* @param name folder name
244+
* @param parent parent folder id, null means a top-level folder
245+
*/
246+
createFavoriteFolder(name: string, parent: string = null) {
247+
const url = '/api/v1/assets/favorite-folders/';
248+
return this.post(url, { name, parent });
249+
}
250+
251+
/**
252+
* Delete a favorite folder (its favorite relations are cascade-removed by backend)
253+
* @param folderId folder id
254+
*/
255+
deleteFavoriteFolder(folderId: string) {
256+
const url = `/api/v1/assets/favorite-folders/${folderId}/`;
257+
return this.delete(url);
258+
}
259+
260+
/**
261+
* Get favorite asset records inside a folder
262+
* @param folderId folder id
263+
*/
264+
getFavoriteAssetsByFolder(folderId: string) {
265+
const url = `/api/v1/assets/favorite-assets/?folder=${folderId}`;
266+
return this.get<Array<any>>(url);
267+
}
268+
269+
/**
270+
* Favorite an asset into a folder
271+
* @param assetId asset id
272+
* @param folderId folder id
273+
*/
274+
favoriteAssetToFolder(assetId: string, folderId: string) {
275+
const url = '/api/v1/assets/favorite-assets/';
276+
return this.post(url, { asset: assetId, folder: folderId });
277+
}
278+
279+
/**
280+
* Remove an asset from a folder
281+
* @param assetId asset id
282+
* @param folderId folder id
283+
*/
284+
removeFavoriteFromFolder(assetId: string, folderId: string) {
285+
const url = `/api/v1/assets/favorite-assets/?asset=${assetId}&folder=${folderId}`;
286+
return this.delete(url);
287+
}
288+
233289
search(q: string) {
234290
const params = new HttpParams().set('q', q);
235291
return this.get('/api/search', { params: params });

0 commit comments

Comments
 (0)