'use strict' const appRoot = require( 'app-root-path' ) const knex = require( `${appRoot}/db/knex` ) const Roles = ( ) => knex( 'user_roles' ) const Scopes = ( ) => knex( 'scopes' ) const Info = ( ) => knex( 'server_config' ) module.exports = { async getServerInfo( ) { let serverInfo = await Info( ).select( '*' ).first( ) serverInfo.version = process.env.SPECKLE_SERVER_VERSION || 'dev' return serverInfo }, async getAllScopes( ) { return await Scopes( ).select( '*' ) }, async getPublicScopes() { return await Scopes( ).select( '*' ).where( { public: true } ) }, async getAllRoles( ) { return await Roles( ).select( '*' ) }, async getPublicRoles() { return await Roles( ).select( '*' ).where( { public: true } ) }, async updateServerInfo( { name, company, description, adminContact, termsOfService, inviteOnly } ) { let serverInfo = await Info( ).select( '*' ).first( ) if ( !serverInfo ) return await Info( ).insert( { name, company, description, adminContact, termsOfService, inviteOnly, completed: true } ) else return await Info( ).where( { id: 0 } ).update( { name, company, description, adminContact, termsOfService, inviteOnly, completed: true } ) } }