feat: add paging capability in getFlows query
This commit is contained in:
@@ -1,22 +1,31 @@
|
|||||||
import Context from '../../types/express/context';
|
import Context from '../../types/express/context';
|
||||||
|
import paginate from '../../helpers/pagination';
|
||||||
|
|
||||||
type Params = {
|
type Params = {
|
||||||
appKey?: string;
|
appKey?: string;
|
||||||
|
limit: number;
|
||||||
|
offset: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getFlows = async (_parent: unknown, params: Params, context: Context) => {
|
const getFlows = async (_parent: unknown, params: Params, context: Context) => {
|
||||||
const flowsQuery = context.currentUser
|
const userStepsQuery = context.currentUser
|
||||||
.$relatedQuery('flows')
|
.$relatedQuery('steps')
|
||||||
.withGraphJoined('[steps.[connection]]')
|
.select('flow_id')
|
||||||
.orderBy('created_at', 'desc');
|
.distinctOn('flow_id');
|
||||||
|
|
||||||
if (params.appKey) {
|
if (params.appKey) {
|
||||||
flowsQuery.where('steps.app_key', params.appKey);
|
userStepsQuery.where('app_key', params.appKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
const flows = await flowsQuery;
|
const flowsQuery = context.currentUser
|
||||||
|
.$relatedQuery('flows')
|
||||||
|
.withGraphFetched('[steps.[connection]]')
|
||||||
|
.whereIn(
|
||||||
|
'flows.id',
|
||||||
|
userStepsQuery
|
||||||
|
);
|
||||||
|
|
||||||
return flows;
|
return paginate(flowsQuery, params.limit, params.offset);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default getFlows;
|
export default getFlows;
|
||||||
|
@@ -4,7 +4,7 @@ type Query {
|
|||||||
getConnectedApps(name: String): [App]
|
getConnectedApps(name: String): [App]
|
||||||
testConnection(id: String!): Connection
|
testConnection(id: String!): Connection
|
||||||
getFlow(id: String!): Flow
|
getFlow(id: String!): Flow
|
||||||
getFlows(appKey: String): [Flow]
|
getFlows(limit: Int!, offset: Int!, appKey: String): FlowConnection
|
||||||
getStepWithTestExecutions(stepId: String!): [Step]
|
getStepWithTestExecutions(stepId: String!): [Step]
|
||||||
getExecutions(limit: Int!, offset: Int!): ExecutionConnection
|
getExecutions(limit: Int!, offset: Int!): ExecutionConnection
|
||||||
getExecutionSteps(
|
getExecutionSteps(
|
||||||
@@ -189,6 +189,15 @@ type Field {
|
|||||||
clickToCopy: Boolean
|
clickToCopy: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FlowConnection {
|
||||||
|
edges: [FlowEdge]
|
||||||
|
pageInfo: PageInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
type FlowEdge {
|
||||||
|
node: Flow
|
||||||
|
}
|
||||||
|
|
||||||
type Flow {
|
type Flow {
|
||||||
id: String
|
id: String
|
||||||
name: String
|
name: String
|
||||||
|
Reference in New Issue
Block a user