mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.4 KiB
65 lines
1.4 KiB
import { Api } from 'nocodb-sdk'; |
|
import { NcContext } from './index'; |
|
import { isEE } from './db'; |
|
let api: Api<any>; |
|
|
|
async function createXcdb(context: NcContext) { |
|
api = new Api({ |
|
baseURL: `http://localhost:8080/`, |
|
headers: { |
|
'xc-auth': context.token, |
|
}, |
|
}); |
|
|
|
let baseList; |
|
|
|
if (isEE() && context.workspace?.id) { |
|
baseList = await api['workspaceBase'].list(context.workspace.id); |
|
} else { |
|
baseList = await api.base.list(); |
|
} |
|
|
|
for (const base of baseList.list) { |
|
// delete base with title 'xcdb' if it exists |
|
if (base.title === 'xcdb') { |
|
await api.base.delete(base.id); |
|
} |
|
} |
|
|
|
const base = await api.base.create({ |
|
title: 'xcdb', |
|
type: 'database', |
|
...(isEE() |
|
? { |
|
fk_workspace_id: context?.workspace?.id, |
|
} |
|
: {}), |
|
}); |
|
return base; |
|
} |
|
|
|
async function deleteXcdb(context: NcContext) { |
|
api = new Api({ |
|
baseURL: `http://localhost:8080/`, |
|
headers: { |
|
'xc-auth': context.token, |
|
}, |
|
}); |
|
|
|
let baseList; |
|
|
|
if (isEE() && context.workspace?.id) { |
|
baseList = await api['workspaceBase'].list(context.workspace.id); |
|
} else { |
|
baseList = await api.base.list(); |
|
} |
|
|
|
for (const base of baseList.list) { |
|
// delete base with title 'xcdb' if it exists |
|
if (base.title === 'xcdb') { |
|
await api.base.delete(base.id); |
|
} |
|
} |
|
} |
|
|
|
export { createXcdb, deleteXcdb };
|
|
|