From 514b26bb0b964cbdce21c7b9bd3a7a135d2eab9e Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 11 Nov 2020 09:03:03 -0500 Subject: [PATCH] Pass schema to services in CLI Fixes #948 --- api/src/cli/commands/roles/create.ts | 17 ++++++++++++----- api/src/cli/commands/users/create.ts | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/api/src/cli/commands/roles/create.ts b/api/src/cli/commands/roles/create.ts index 43ef17358d..4b34479c4f 100644 --- a/api/src/cli/commands/roles/create.ts +++ b/api/src/cli/commands/roles/create.ts @@ -1,5 +1,5 @@ export default async function rolesCreate({ name, admin }: any) { - const database = require('../../../database/index').default; + const { default: database, schemaInspector } = require('../../../database/index'); const { RolesService } = require('../../../services/roles'); if (!name) { @@ -7,8 +7,15 @@ export default async function rolesCreate({ name, admin }: any) { process.exit(1); } - const service = new RolesService(); - const id = await service.create({ name, admin_access: admin }); - console.log(id); - database.destroy(); + try { + const schema = await schemaInspector.overview(); + const service = new RolesService({ schema: schema, knex: database }); + + const id = await service.create({ name, admin_access: admin }); + console.log(id); + } catch (err) { + console.error(err); + } finally { + database.destroy(); + } } diff --git a/api/src/cli/commands/users/create.ts b/api/src/cli/commands/users/create.ts index 6fc725a49a..e036ab2c92 100644 --- a/api/src/cli/commands/users/create.ts +++ b/api/src/cli/commands/users/create.ts @@ -1,5 +1,5 @@ export default async function usersCreate({ email, password, role }: any) { - const database = require('../../../database/index').default; + const { default: database, schemaInspector } = require('../../../database/index').default; const { UsersService } = require('../../../services/users'); if (!email || !password || !role) { @@ -7,8 +7,15 @@ export default async function usersCreate({ email, password, role }: any) { process.exit(1); } - const service = new UsersService(); - const id = await service.create({ email, password, role, status: 'active' }); - console.log(id); - database.destroy(); + try { + const schema = await schemaInspector.overview(); + const service = new UsersService({ schema, knex: database }); + + const id = await service.create({ email, password, role, status: 'active' }); + console.log(id); + } catch (err) { + console.error(err); + } finally { + database.destroy(); + } }