Files
speckle-server/packages/server/modules/core/services/generic.js
T
Gergő Jedlicska dca0d8c325 gergo/serverMigration (#2067)
* feat: add server migration data to server info

* chore: gqlcodegen
2024-02-21 17:55:08 +01:00

78 lines
1.7 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 })
},
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
})
}
}