export class CollectionService extends TrashableResourceService<CollectionResource> {
constructor(serverApi: AxiosInstance, private webdavClient: WebDAV, private authService: AuthService, actions: ApiActions) {
super(serverApi, "collections", actions, [
export class CollectionService extends TrashableResourceService<CollectionResource> {
constructor(serverApi: AxiosInstance, private webdavClient: WebDAV, private authService: AuthService, actions: ApiActions) {
super(serverApi, "collections", actions, [
+ create(data?: Partial<CollectionResource>) {
+ return super.create({ ...data, preserveVersion: true });
+ }
+
+ update(uuid: string, data: Partial<CollectionResource>) {
+ return super.update(uuid, { ...data, preserveVersion: true });
+ }
+
async files(uuid: string) {
const request = await this.webdavClient.propfind(`c=${uuid}`);
if (request.responseXML != null) {
async files(uuid: string) {
const request = await this.webdavClient.propfind(`c=${uuid}`);
if (request.responseXML != null) {
// files have to be uploaded sequentially
for (let idx = 0; idx < files.length; idx++) {
await this.uploadFile(collectionUuid, files[idx], idx, onProgress);
}
// files have to be uploaded sequentially
for (let idx = 0; idx < files.length; idx++) {
await this.uploadFile(collectionUuid, files[idx], idx, onProgress);
}
- moveFile(collectionUuid: string, oldPath: string, newPath: string) {
- return this.webdavClient.move(
+ async moveFile(collectionUuid: string, oldPath: string, newPath: string) {
+ await this.webdavClient.move(
`c=${collectionUuid}${oldPath}`,
`c=${collectionUuid}${encodeURI(newPath)}`
);
`c=${collectionUuid}${oldPath}`,
`c=${collectionUuid}${encodeURI(newPath)}`
);
? this.webdavClient.defaults.baseURL.slice(0, -1)
: this.webdavClient.defaults.baseURL;
const apiToken = this.authService.getApiToken();
? this.webdavClient.defaults.baseURL.slice(0, -1)
: this.webdavClient.defaults.baseURL;
const apiToken = this.authService.getApiToken();
- const splittedApiToken = apiToken ? apiToken.split('/') : [];
- const userApiToken = `/t=${splittedApiToken[2]}/`;
+ const encodedApiToken = apiToken ? encodeURI(apiToken) : '';
+ const userApiToken = `/t=${encodedApiToken}/`;