import { SPACE, RUNTIME, ID, TENANT_ID, DESCRIPTOR, INSTANCE_ID, DESCRIPTOR_SCHEMA_VERSION, DESCRIPTOR_SCHEMA_ID, EDITABLE, IS_DEFAULT } from "../../utils/globals"; import getDatabaseClient from "../../database/knexClient" import { Knex } from "knex"; // const sharedLib = require('portal-cf-shared-lib'); // const cfLogger:any = sharedLib.cfLogger; // const logger = cfLogger.initLogger('portal-cf-shared-database-client/dao/runtime/space.ts'); import { CreateSpaceArgs, DeleteSpaceArgs, UpdateSpaceArgs } from "../../utils/types" class SpaceDAO{ async deleteSpace({zoneId, id, instanceId}:DeleteSpaceArgs) { try { const dbClient:Knex = await getDatabaseClient(RUNTIME); const deletionResponse = await dbClient .from(SPACE) .where(ID, id) .where(TENANT_ID, zoneId) .where(INSTANCE_ID, instanceId) .del(); return deletionResponse; } catch (error) { // logger.logRequestMessage('error', "Space deletion DB call failed:\n " + error); throw error; } } async createSpace({params = ['*'], id, zoneId, instanceId, descriptor, descriptorSchemaId, descriptorSchemaVersion, editable, isDefault = false}:CreateSpaceArgs) { try{ const dbClient:Knex = await getDatabaseClient(RUNTIME); const spaceResponse = await dbClient .insert({ [TENANT_ID]: zoneId, [DESCRIPTOR]: descriptor, [ID]: id, [INSTANCE_ID]: instanceId, [DESCRIPTOR_SCHEMA_VERSION]: descriptorSchemaVersion, [DESCRIPTOR_SCHEMA_ID]: descriptorSchemaId, [EDITABLE]: editable, [IS_DEFAULT]: isDefault }) .into(SPACE) .returning(params) if (spaceResponse) { return spaceResponse[0]; } return null; } catch (error) { // logger.logRequestMessage('error', "Space creation DB call failed:\n " + error); throw error; } } async updateSpace({params = ['*'], zoneId, descriptor, id, instanceId}:UpdateSpaceArgs){ try{ const dbClient:Knex = await getDatabaseClient(RUNTIME); const updateSpace = await dbClient(SPACE) .update(DESCRIPTOR, descriptor) .where(ID, id) .where(TENANT_ID, zoneId) .where(INSTANCE_ID, instanceId) .returning(params); return updateSpace; } catch (error) { // logger.logRequestMessage('error', "Space update DB call failed:\n " + error); throw error; } } } export default new SpaceDAO()