feat: Expose flow count with connections of getApp query
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
import process from 'process';
|
||||
// The following two lines are required to get count values as number.
|
||||
// More info: https://github.com/knex/knex/issues/387#issuecomment-51554522
|
||||
import pg from 'pg';
|
||||
pg.types.setTypeParser(20, 'text', parseInt);
|
||||
import knex from 'knex';
|
||||
import type { Knex } from 'knex';
|
||||
import knexConfig from '../../knexfile';
|
||||
@@ -8,10 +12,12 @@ export const client: Knex = knex(knexConfig);
|
||||
|
||||
const CONNECTION_REFUSED = 'ECONNREFUSED';
|
||||
|
||||
client.raw('SELECT 1')
|
||||
.catch((err) => {
|
||||
if (err.code === CONNECTION_REFUSED) {
|
||||
logger.error('Make sure you have installed PostgreSQL and it is running.', err);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
client.raw('SELECT 1').catch((err) => {
|
||||
if (err.code === CONNECTION_REFUSED) {
|
||||
logger.error(
|
||||
'Make sure you have installed PostgreSQL and it is running.',
|
||||
err
|
||||
);
|
||||
process.exit();
|
||||
}
|
||||
});
|
||||
|
@@ -11,10 +11,14 @@ const getApp = async (_parent: unknown, params: Params, context: Context) => {
|
||||
if (context.currentUser) {
|
||||
const connections = await context.currentUser
|
||||
.$relatedQuery('connections')
|
||||
.select('connections.*')
|
||||
.fullOuterJoinRelated('steps')
|
||||
.where({
|
||||
key: params.key,
|
||||
draft: false,
|
||||
'connections.key': params.key,
|
||||
'connections.draft': false,
|
||||
})
|
||||
.countDistinct('steps.flow_id as flowCount')
|
||||
.groupBy('connections.id')
|
||||
.orderBy('created_at', 'desc');
|
||||
|
||||
return {
|
||||
|
@@ -161,6 +161,7 @@ type Connection {
|
||||
verified: Boolean
|
||||
app: App
|
||||
createdAt: String
|
||||
flowCount: Int
|
||||
}
|
||||
|
||||
type ConnectionData {
|
||||
|
@@ -3,6 +3,7 @@ import type { RelationMappings } from 'objection';
|
||||
import { AES, enc } from 'crypto-js';
|
||||
import Base from './base';
|
||||
import User from './user';
|
||||
import Step from './step';
|
||||
import appConfig from '../config/app';
|
||||
import { IJSONObject } from '@automatisch/types';
|
||||
import Telemetry from '../helpers/telemetry';
|
||||
@@ -16,6 +17,7 @@ class Connection extends Base {
|
||||
verified = false;
|
||||
draft: boolean;
|
||||
count?: number;
|
||||
flowCount?: number;
|
||||
|
||||
static tableName = 'connections';
|
||||
|
||||
@@ -43,6 +45,14 @@ class Connection extends Base {
|
||||
to: 'users.id',
|
||||
},
|
||||
},
|
||||
steps: {
|
||||
relation: Base.HasManyRelation,
|
||||
modelClass: Step,
|
||||
join: {
|
||||
from: 'connections.id',
|
||||
to: 'steps.connection_id',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
encryptData(): void {
|
||||
|
Reference in New Issue
Block a user