feat: Implement pagination logic and use with getExecutions query

This commit is contained in:
Faruk AYDIN
2022-03-10 23:20:54 +03:00
committed by Ömer Faruk Aydın
parent 906a8d0644
commit 44623cc384
3 changed files with 55 additions and 5 deletions

View File

@@ -1,16 +1,22 @@
import Context from '../../types/express/context';
import paginate from '../../helpers/pagination';
type Params = {
limit: number;
offset: number;
};
const getExecutions = async (
_parent: unknown,
_params: unknown,
params: Params,
context: Context
) => {
const executions = await context.currentUser
const executions = context.currentUser
.$relatedQuery('executions')
.withGraphFetched('flow')
.orderBy('created_at', 'asc');
.orderBy('created_at', 'desc');
return executions;
return paginate(executions, params.limit, params.offset);
};
export default getExecutions;

View File

@@ -7,7 +7,7 @@ type Query {
getFlow(id: String!): Flow
getFlows: [Flow]
getStepWithTestExecutions(stepId: String!): [Step]
getExecutions: [Execution]
getExecutions(limit: Int!, offset: Int!): ExecutionConnection
}
type Mutation {
@@ -354,6 +354,20 @@ type User {
updatedAt: String
}
type PageInfo {
currentPage: Int!
totalPages: Int!
}
type ExecutionEdge {
node: Execution
}
type ExecutionConnection {
edges: [ExecutionEdge]
pageInfo: PageInfo
}
schema {
query: Query
mutation: Mutation