4.4 KiB
4.4 KiB
File Manager
Delete, Restore, Purge
Ringkasan Endpoint Utama
DELETE /api/v1/file-manager/deleteuntuk soft delete bulk (file/folder)PATCH /api/v1/file-manager/restoreuntuk restore bulk (file/folder) ke lokasi asalDELETE /api/v1/file-manager/purge-deleteuntuk hard delete bulk (file/folder)GET /api/v1/file-manager/trash/get-alluntuk list trash merged
Catatan Kontrak
- Tidak ada endpoint delete single.
- Tidak ada endpoint restore single.
- Gunakan endpoint bulk untuk delete/restore/purge.
Step 1 - Soft Delete Node (Bulk)
Endpoint
DELETE /api/v1/file-manager/delete
Tujuan
- soft delete file/folder (masuk trash)
- jika folder di-delete, subtree (child folder + child file) ikut ke-trash
Contoh request
{
"data": [
{ "uuid": "folder-uuid" },
{ "uuid": "file-uuid" }
]
}
Contoh response
{
"data": [
{
"index": 0,
"success": true,
"resource": {
"type": "file_manager_delete_result",
"id": "folder-uuid",
"attributes": {
"node_type": "folder",
"status": "trashed"
}
}
},
{
"index": 1,
"success": true,
"resource": {
"type": "file_manager_delete_result",
"id": "file-uuid",
"attributes": {
"node_type": "file",
"status": "trashed"
}
}
}
],
"meta": {
"total": 2,
"success": 2,
"failed": 0,
"partial_success": false
}
}
Step 3 - Lihat Trash
Endpoint
GET /api/v1/file-manager/trash/get-all
Tujuan
- menampilkan data trash merged (folder + file)
Contoh response
{
"data": [
{
"type": "file_manager_trash_node",
"id": "folder-uuid",
"attributes": {
"node_type": "folder",
"name": "Documents",
"path_cache": "/Documents",
"trashed_at": "2026-04-01T10:00:00Z"
}
},
{
"type": "file_manager_trash_node",
"id": "file-uuid",
"attributes": {
"node_type": "file",
"name": "LOGO.png",
"extension": "png",
"size_bytes": 100988,
"mime_type": "image/png",
"trashed_at": "2026-04-01T10:00:00Z"
}
}
],
"meta": {
"page_number": 1,
"page_size": 20,
"folders": 1,
"files": 1,
"total": 2
}
}
Step 4 - Restore Node (Bulk, kembali ke lokasi asal)
Endpoint
PATCH /api/v1/file-manager/restore
Contoh request
{
"data": [{ "uuid": "folder-uuid" }, { "uuid": "file-uuid" }]
}
Aturan:
- restore tidak menerima
destination_folder_uuidlagi - node akan kembali ke lokasi asal (parent/folder saat sebelum di-trash)
- jika lokasi asal root, field
locationtidak dimunculkan
Contoh response
{
"data": [
{
"index": 0,
"success": true,
"resource": {
"type": "file_manager_restore_result",
"id": "folder-uuid",
"attributes": {
"node_type": "folder",
"status": "ready"
}
}
},
{
"index": 1,
"success": true,
"resource": {
"type": "file_manager_restore_result",
"id": "file-uuid",
"attributes": {
"node_type": "file",
"status": "ready",
"location": {
"folder_id": "folder-uuid-optional"
}
}
}
}
],
"meta": {
"total": 2,
"success": 2,
"failed": 0,
"partial_success": false
}
}
Step 5 - Purge Node (Hard Delete)
Endpoint
DELETE /api/v1/file-manager/purge-delete(bulk)
Tujuan
- hapus permanen file atau folder (UUID bisa keduanya)
- kalau UUID folder: subtree ikut dihapus permanen
- kalau UUID file: file dihapus permanen
Contoh request bulk
{
"data": [
{ "uuid": "folder-uuid" },
{ "uuid": "file-uuid" }
]
}
Contoh response
{
"data": [
{
"index": 0,
"success": true,
"resource": {
"type": "file_manager_purge_result",
"id": "folder-uuid",
"attributes": {
"node_type": "folder",
"status": "purged"
}
}
},
{
"index": 1,
"success": true,
"resource": {
"type": "file_manager_purge_result",
"id": "file-uuid",
"attributes": {
"node_type": "file",
"status": "purged"
}
}
}
],
"meta": {
"total": 2,
"success": 2,
"failed": 0,
"partial_success": false
}
}