1
0
mirror of https://gitlab.com/bramw/baserow.git synced 2024-11-21 23:37:55 +00:00
bramw_baserow/web-frontend/modules/core/services/trash.js

74 lines
2.2 KiB
JavaScript

export default (client) => {
return {
fetchStructure() {
/**
* Corresponding Backend View: baserow.api.trash.views.TrashStructureView.get
*
* Queries the backend for the workspaces and applications that the current user can
* see and manage trash for.
*/
return client.get(`/trash/`)
},
fetchContents({
workspaceId,
applicationId = null,
page = null,
adoptWorkspace = true,
}) {
/**
* Corresponding Backend View: baserow.api.trash.views.TrashContentsView.get
*
* Queries the backend for a page of trashed items in the provided workspace or
* application. If application is specified it must be in the workspace with the
* id of the workspaceId parameter.
*/
const config = {
params: {},
}
if (page !== null) {
config.params.page = page
}
if (adoptWorkspace === true) {
config.params.respond_with_workspace_rename = true
}
if (applicationId !== null) {
config.params.application_id = applicationId
}
return client.get(`/trash/workspace/${workspaceId}/`, config)
},
emptyContents({ workspaceId, applicationId = null }) {
/**
* Corresponding Backend View: baserow.api.trash.views.TrashContentsView.delete
*
* Sends a delete request to the backend which will empty any trash items either
* for the entire workspace is the applicationId is null. Or only trash in the
* application if applicationId is not null. The workspaceId must match the
* applications workspace.
*/
const config = {
params: {},
}
if (applicationId !== null) {
config.params.application_id = applicationId
}
return client.delete(`/trash/workspace/${workspaceId}/`, config)
},
restore(restoreData) {
/**
* Corresponding Backend View: baserow.api.trash.views.TrashItemView.patch
*
* Restores a trashed item. restoreData should be a dict with three keys,
* "trash_item_type", "parent_trash_item_id" (optional when the item has no
* parent) and "trash_item_id".
*/
return client.patch(`/trash/restore/`, restoreData)
},
}
}