1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-25 10:11:24 +00:00
seahub/frontend/src/utils/repo-share-admin-api.js
llj 8d7092f776
Repo share admin (#6745)
* [repo 'share admin'] redesigned the 'Share Links' panel

* [repo 'share admin'] 'Share Links' panel: display user avatar, add 'delete selected links', add 'scroll to the bottom to load the next page of data'

* [repo 'share admin'] 'Upload Links' panel: redesigned it
2024-09-11 18:20:33 +08:00

75 lines
1.9 KiB
JavaScript

import cookie from 'react-cookies';
import { siteRoot } from './constants';
import axios from 'axios';
class RepoShareAdminAPI {
init({ server, username, password, token }) {
this.server = server;
this.username = username;
this.password = password;
this.token = token; // none
if (this.token && this.server) {
this.req = axios.create({
baseURL: this.server,
headers: { 'Authorization': 'Token ' + this.token },
});
}
return this;
}
initForSeahubUsage({ siteRoot, xcsrfHeaders }) {
if (siteRoot && siteRoot.charAt(siteRoot.length - 1) === '/') {
let server = siteRoot.substring(0, siteRoot.length - 1);
this.server = server;
} else {
this.server = siteRoot;
}
this.req = axios.create({
headers: {
'X-CSRFToken': xcsrfHeaders,
}
});
return this;
}
_sendPostRequest(url, form) {
if (form.getHeaders) {
return this.req.post(url, form, {
headers: form.getHeaders()
});
} else {
return this.req.post(url, form);
}
}
listRepoShareLinks(repoID, page, perPage) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/share-links/';
const params = {
page: page || 1,
per_page: perPage || 25
};
return this.req.get(url, { params: params });
}
listRepoUploadLinks(repoID, page, perPage) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/upload-links/';
const params = {
page: page || 1,
per_page: perPage || 25
};
return this.req.get(url, { params: params });
}
deleteUploadLinks(tokens) {
const url = this.server + '/api/v2.1/upload-links/';
let param = { tokens: tokens };
return this.req.delete(url, { data: param });
}
}
let repoShareAdminAPI = new RepoShareAdminAPI();
let xcsrfHeaders = cookie.load('sfcsrftoken');
repoShareAdminAPI.initForSeahubUsage({ siteRoot, xcsrfHeaders });
export { repoShareAdminAPI };