1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-15 05:33:38 +00:00
seahub/frontend/src/components/metadata-manage/seahub-metadata-api.js

99 lines
2.7 KiB
JavaScript
Raw Normal View History

2024-06-11 10:35:26 +00:00
import axios from 'axios';
import cookie from 'react-cookies';
import { siteRoot } from '../../utils/constants';
2024-06-12 01:56:53 +00:00
class SeahubMetadataAPI {
2024-06-11 10:35:26 +00:00
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) === '/') {
var 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);
}
}
getMetadataManagementEnabledStatus(repoID) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
return this.req.get(url);
}
enableMetadataManagement(repoID) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
2024-06-12 01:56:53 +00:00
return this.req.put(url);
2024-06-11 10:35:26 +00:00
}
disableMetadataManagement(repoID) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
return this.req.delete(url);
}
getMetadataRecords(repoID, params) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/records/';
return this.req.get(url, {params: params});
}
addMetadataRecords(repoID, parentDir, name) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/records/';
const data = {
'parent_dir': parentDir,
'name': name,
};
return this.req.post(url, data);
}
updateMetadataRecord(repoID, recordID, creator, createTime, modifier, modifyTime, parentDir, name) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/records/' + recordID + '/';
const data = {
'creator': creator,
'create_time': createTime,
'modifier': modifier,
'modify_time': modifyTime,
'current_dir': parentDir,
'name': name,
};
return this.req.put(url, data);
}
deleteMetadataRecord(repoID, recordID) {
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/records/' + recordID + '/';
return this.req.delete(url);
}
}
2024-06-12 01:56:53 +00:00
const seahubMetadataAPI = new SeahubMetadataAPI();
2024-06-11 10:35:26 +00:00
const xcsrfHeaders = cookie.load('sfcsrftoken');
2024-06-12 01:56:53 +00:00
seahubMetadataAPI.initForSeahubUsage({ siteRoot, xcsrfHeaders });
2024-06-11 10:35:26 +00:00
2024-06-13 08:12:16 +00:00
export default seahubMetadataAPI;