day 11
This commit is contained in:
Executable
+56
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2021*/
|
||||
/**
|
||||
* code Resolve All
|
||||
* @copyright 2021 Manaknightdigital Inc.
|
||||
* @link https://manaknightdigital.com
|
||||
* @license Proprietary Software licensing
|
||||
* @author Ryan Wong
|
||||
*
|
||||
*/
|
||||
const { ApolloError } = require('apollo-server-express');
|
||||
const Sequelize = require('sequelize');
|
||||
const { last } = require('lodash');
|
||||
const graphqlFields = require('graphql-fields');
|
||||
|
||||
module.exports = async (_, { first, after }, { db, credential }, info) => {
|
||||
//Check Auth if user allowed
|
||||
try {
|
||||
const attributes = db.code.intersection(graphqlFields(info).edges.node);
|
||||
|
||||
const options = {
|
||||
where: {},
|
||||
limit: first,
|
||||
attributes,
|
||||
};
|
||||
|
||||
if (after) {
|
||||
options.where = {
|
||||
id: {
|
||||
[Sequelize.Op.gt]: after,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const { count, rows } = await db.code.findAndCountAll(options);
|
||||
|
||||
const edges = rows.map((code) => ({
|
||||
cursor: code.id,
|
||||
node: code,
|
||||
}));
|
||||
|
||||
const pageInfo = {
|
||||
endCursor: last(edges).cursor,
|
||||
hasNextPage: 0 < count - first,
|
||||
};
|
||||
|
||||
return {
|
||||
edges,
|
||||
pageInfo,
|
||||
};
|
||||
|
||||
} catch (error) {
|
||||
console.log('code -> error', error);
|
||||
return new ApolloError('InternalServerError');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user