Files
speckle-server/packages/server/modules/stats/services/index.js
T
2021-06-10 14:00:12 +01:00

94 lines
2.3 KiB
JavaScript

'use strict'
const appRoot = require( 'app-root-path' )
const knex = require( `${appRoot}/db/knex` )
module.exports = {
async getTotalStreamCount() {
const query = 'SELECT COUNT(*) FROM streams'
const result = await knex.raw( query )
return parseInt( result.rows[0].count )
},
async getTotalCommitCount() {
const query = 'SELECT COUNT(*) FROM commits'
const result = await knex.raw( query )
return parseInt( result.rows[0].count )
},
async getTotalObjectCount() {
const query = 'SELECT COUNT(*) FROM objects'
const result = await knex.raw( query )
return parseInt( result.rows[0].count )
},
async getTotalUserCount() {
const query = 'SELECT COUNT(*) FROM users'
const result = await knex.raw( query )
return parseInt( result.rows[0].count )
},
async getStreamHistory() {
const query = `
SELECT
DATE_TRUNC('month', streams. "createdAt") AS created_month,
COUNT(id) AS count
FROM
streams
GROUP BY
DATE_TRUNC('month', streams. "createdAt")
`
const result = await knex.raw( query )
result.rows.forEach( row => row.count = parseInt( row.count ) )
return result.rows
},
async getCommitHistory() {
const query = `
SELECT
DATE_TRUNC('month', commits. "createdAt") AS created_month,
COUNT(id) AS count
FROM
commits
GROUP BY
DATE_TRUNC('month', commits. "createdAt")
`
const result = await knex.raw( query )
result.rows.forEach( row => row.count = parseInt( row.count ) )
return result.rows
},
async getObjectHistory() {
const query = `
SELECT
DATE_TRUNC('month', objects. "createdAt") AS created_month,
COUNT(id) AS count
FROM
objects
GROUP BY
DATE_TRUNC('month', objects. "createdAt")
`
const result = await knex.raw( query )
result.rows.forEach( row => row.count = parseInt( row.count ) )
return result.rows
},
async getUserHistory() {
const query = `
SELECT
DATE_TRUNC('month', users. "createdAt") AS created_month,
COUNT(id) AS count
FROM
users
GROUP BY
DATE_TRUNC('month', users. "createdAt")
`
const result = await knex.raw( query )
result.rows.forEach( row => row.count = parseInt( row.count ) )
return result.rows
},
}