Files
speckle-server/packages/server/modules/core/services/generic.js
T
Kristaps Fabians Geikins 7383779375 feat(server): registration (w/ and w/o invites) tests (#2567)
* WIP tests

* a couple of tests done

* most server registration tests done

* finalized tests

* lint fix

* added login tests too
2024-08-05 16:21:56 +03:00

81 lines
1.8 KiB
JavaScript

'use strict'
const knex = require('@/db/knex')
const {
getServerVersion,
getServerOrigin,
getServerMovedTo,
getServerMovedFrom
} = require('@/modules/shared/helpers/envHelper')
const Roles = () => knex('user_roles')
const Scopes = () => knex('scopes')
const Info = () => knex('server_config')
module.exports = {
/**
* @returns {Promise<import('@/modules/core/helpers/types').ServerInfo>}
*/
async getServerInfo() {
const serverInfo = await Info().select('*').first()
serverInfo.version = getServerVersion()
serverInfo.canonicalUrl = getServerOrigin()
const movedTo = getServerMovedTo()
const movedFrom = getServerMovedFrom()
if (movedTo || movedFrom) serverInfo.migration = { movedTo, movedFrom }
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 })
},
/**
* @param {Partial<import('@/modules/core/helpers/types').ServerConfigRecord>} param0
*/
async updateServerInfo({
name,
company,
description,
adminContact,
termsOfService,
inviteOnly,
guestModeEnabled
}) {
const serverInfo = await Info().select('*').first()
if (!serverInfo)
return await Info().insert({
name,
company,
description,
adminContact,
termsOfService,
inviteOnly,
guestModeEnabled,
completed: true
})
else
return await Info().where({ id: 0 }).update({
name,
company,
description,
adminContact,
termsOfService,
inviteOnly,
guestModeEnabled,
completed: true
})
}
}