Skip to content

Commit 125f6b3

Browse files
committed
updatePagination
1 parent e3e543a commit 125f6b3

File tree

9 files changed

+86
-47
lines changed

9 files changed

+86
-47
lines changed

.eslintrc

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
{
2-
"root": true,
1+
{
2+
"parser": "@typescript-eslint/parser", // Specifies the ESLint parser
33
"extends": [
4-
"prettier",
5-
"eslint:recommended",
6-
"plugin:@typescript-eslint/recommended"
4+
"plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin
5+
"plugin:prettier/recommended" // Enables eslint-plugin-prettier and eslint-config-prettier. This will display prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array.
76
],
8-
"parser": "@typescript-eslint/parser",
9-
"plugins": ["@typescript-eslint"],
7+
"parserOptions": {
8+
"ecmaVersion": 2018, // Allows for the parsing of modern ECMAScript features
9+
"sourceType": "module" // Allows for the use of imports
10+
},
11+
"plugins": ["@typescript-eslint", "prettier"],
1012
"rules": {
11-
"no-unused-vars": "off",
12-
"@typescript-eslint/no-unused-vars": [
13-
"error",
14-
{
15-
"argsIgnorePattern": "^_"
16-
}
17-
]
13+
"@typescript-eslint/no-use-before-define": 0,
14+
"@typescript-eslint/explicit-function-return-type": 0,
15+
"@typescript-eslint/no-var-requires": 0,
16+
"@typescript-eslint/explicit-module-boundary-types": 0
1817
}
1918
}

.eslintrc2

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"root": true,
3+
"extends": [
4+
"prettier",
5+
"eslint:recommended",
6+
"plugin:@typescript-eslint/recommended"
7+
],
8+
"parser": "@typescript-eslint/parser",
9+
"plugins": ["@typescript-eslint"],
10+
"rules": {
11+
"no-unused-vars": "off",
12+
"@typescript-eslint/no-unused-vars": [
13+
"error",
14+
{
15+
"argsIgnorePattern": "^_"
16+
}
17+
]
18+
}
19+
}

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
lib
33
node_modules
44
.graphql-editor-auth.json
5-
tsconfig.tsbuildinfo
5+
tsconfig.tsbuildinfo
6+
.vscode
File renamed without changes.

packages/integrations/gei-bookings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gei-bookings",
3-
"version": "0.2.6",
3+
"version": "0.2.7",
44
"description": "Automatically generated by graphql-editor-cli",
55
"main": "lib/index.js",
66
"scripts": {

packages/integrations/gei-bookings/src/PublicQuery/getService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ export const getService = async (input: FieldResolveInput) =>
77
resolverFor('PublicQuery', 'getService', async (args) =>
88
errMiddleware(async () => {
99
return ({
10-
service: convertDatedObjToString(await MongoOrb('Services').collection.findOne({ _id: args.serviceId, active: { $ne: false } }).catch((r) => {
11-
throw new GlobalError(r, import.meta.url);
10+
service: convertDatedObjToString(await MongoOrb('Services').collection.findOne({ _id: args.serviceId, active: { $ne: false } }).catch((r) => {
11+
throw new GlobalError(r, import.meta.url);
1212
}))
1313
})
1414
}),

packages/integrations/gei-bookings/src/PublicQuery/listServices.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,24 @@ export const listServices = async (input: FieldResolveInput) =>
1010
errMiddleware(async () => {
1111
const po = preparePageOptions(args?.input?.page);
1212
const inputFilters = inputServiceFiltersSet(args?.input?.filters)
13-
return {
14-
services: convertDateObjToStringForArray(await MongoOrb(ServicesCollection)
15-
.collection.find({
16-
...inputFilters,
17-
active: { $ne: false },
18-
taken: { $ne: true },
19-
})
20-
.limit(po.limit)
21-
.skip(po.skip)
22-
.sort('createdAt', -1)
23-
.toArray(),
24-
)};
25-
}),
13+
const servicesCursor = MongoOrb(ServicesCollection)
14+
.collection.find({
15+
...inputFilters,
16+
active: { $ne: false },
17+
taken: { $ne: true },
18+
})
19+
const paginatedServices = await (po.limit < 1 ?
20+
servicesCursor
21+
: servicesCursor.limit(po.limit + 1).skip(po.skip)
22+
).sort('createdAt', -1)
23+
.toArray()
24+
const hasNext = paginatedServices.length === po.limit + 1
25+
if(hasNext) paginatedServices.pop();
26+
27+
return {
28+
services: convertDateObjToStringForArray(paginatedServices),
29+
hasNextPage: hasNext
30+
};
31+
}),
2632
)(input.arguments);
2733
export default listServices;

packages/integrations/gei-bookings/src/UserQuery/getBookingsForService.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,23 @@ export const getBookingsForService = async (input: FieldResolveInput) =>
1717
.toArray()
1818
.then((s) => s.map((ss) => ss._id))
1919

20-
const bookings = await MongoOrb('Bookings')
21-
.collection.find({ ...inputFilters, services: { $in: ownedServices } })
22-
.limit(po.limit)
23-
.skip(po.skip)
24-
.sort('createdAt', -1)
25-
.toArray()
2620

27-
return { books: convertDateObjToStringForArray<BookingRecordModel>(await MongoOrb('Bookings').composeRelated(bookings, 'services', 'Services', '_id')) }
21+
const bookingsCursor = MongoOrb('Bookings')
22+
.collection.find({ ...inputFilters, services: { $in: ownedServices } })
23+
const paginatedBookings = await (po.limit < 1 ?
24+
bookingsCursor
25+
: bookingsCursor.limit(po.limit + 1).skip(po.skip)
26+
).sort('createdAt', -1)
27+
.toArray()
28+
const hasNext = paginatedBookings.length === po.limit + 1
29+
if(hasNext) paginatedBookings.pop();
30+
31+
32+
33+
return {
34+
books: convertDateObjToStringForArray<BookingRecordModel>(await MongoOrb('Bookings').composeRelated(paginatedBookings, 'services', 'Services', '_id')),
35+
hasNextPage: hasNext
36+
}
2837
}),
2938
)(input.arguments, input.source);
3039
export default getBookingsForService;

packages/integrations/gei-bookings/src/UserQuery/getSelfBooks.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@ export const getSelfBooks = async (input: FieldResolveInput) =>
1010
const po = preparePageOptions(args?.input?.page);
1111
const inputFilters = inputBooksFiltersSet(args?.input?.filters)
1212

13-
return {
14-
books: convertDateObjToStringForArray(await MongoOrb('Bookings')
15-
.collection.find({ ...inputFilters, bookerId: src.userId || src._id })
16-
.skip(po.skip)
17-
.limit(po.limit)
18-
.sort('createdAt', -1)
19-
.toArray()
20-
.then(async (b) => MongoOrb('Bookings').composeRelated(b, 'services', 'Services', '_id'))),
21-
};
13+
const bookingsCursor = MongoOrb('Bookings')
14+
.collection.find({ ...inputFilters, bookerId: src.userId || src._id })
15+
const paginatedBookings = await (po.limit < 1 ?
16+
bookingsCursor
17+
: bookingsCursor.limit(po.limit + 1).skip(po.skip)
18+
).sort('createdAt', -1)
19+
.toArray()
20+
const hasNext = paginatedBookings.length === po.limit + 1
21+
if(hasNext) paginatedBookings.pop();
22+
23+
return {
24+
books: convertDateObjToStringForArray(await MongoOrb('Bookings').composeRelated(paginatedBookings, 'services', 'Services', '_id')),
25+
hasNextPage: hasNext
26+
}
2227
}),
2328
)(input.arguments, input.source);
2429
export default getSelfBooks;

0 commit comments

Comments
 (0)