@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
35 lines (34 loc) • 1.22 kB
JavaScript
import getDatabase from '../database/index.js';
import { transaction } from '../utils/transaction.js';
import { ItemsService } from './items.js';
export class DeploymentProjectsService extends ItemsService {
constructor(options) {
super('directus_deployment_projects', options);
}
/**
* Update project selection (create/delete)
*/
async updateSelection(deploymentId, create, deleteIds) {
const db = getDatabase();
return transaction(db, async (trx) => {
const trxService = new DeploymentProjectsService({
accountability: this.accountability,
schema: this.schema,
knex: trx,
});
if (deleteIds.length > 0) {
await trxService.deleteMany(deleteIds);
}
if (create.length > 0) {
await trxService.createMany(create.map((p) => ({
deployment: deploymentId,
external_id: p.external_id,
name: p.name,
})));
}
return trxService.readByQuery({
filter: { deployment: { _eq: deploymentId } },
});
});
}
}