csdb-ng/server/resolvers/resolvers.group.js

84 lines
2.1 KiB
JavaScript

let globals = require('../config.js').globals;
const resolvers = {
Query: {
group: (parent, { id }, context, info) => getGroup(id),
groups: (parent, { id }, context, info) => getGroups(id),
},
Mutation: {
createGroup: (parent, { data }, context, info) => createGroup(data),
updateGroup: (parent, { id }, context, info) => updateGroup(id),
deleteGroup: (parent, { id }, context, info) => deleteGroup(id),
},
//////////
Group: {
FounderHandles: ({ FounderHandleIDs }, args, context, info) => getHandles(FounderHandleIDs),
OrganizedEvents: ({ OrganizedEventIDs }, args, context, info) => getEvents(OrganizedEventIDs),
Releases: ({ ReleaseIDs }, args, context, info) => getReleases(ReleaseIDs),
BBSs: ({ BBSIDs }, args, context, info) => getBBSs(BBSIDs),
CoOpGroups: ({ CoOpGroupIDs }, args, context, info) => getGroups(CoOpGroupIDs),
},
GroupCommentData: {
Handle: ({ HandleID }, args, context, info) => getHandle(HandleID),
},
GroupMember: {
Handle: ({ HandleID }, args, context, info) => getHandle(HandleID),
},
}
getGroupFile = id => `${globals.data_path}/group/${Math.floor(id/1000)}/${id}/group.${id}.json`;
// Object loader
getGroup = id => {
return loadJSON(getGroupFile(id));
}
getGroups = idArray => {
data = [];
try {
idArray.forEach( id => {
// Add object
data.push(getGroup(id));
})
}
catch(err) {
//console.log(err);
}
return data;
}
// Load object by ID or ID array
addGroup = (id, context) => {
addGroups([id], context);
return id;
}
addGroups = (idArray, context) => {
console.log(idArray);
try {
idArray.forEach( id => {
// Add object if it isn't already added
if (!objectExists(context, 'Groups', id)) {
data = getGroup(id);
addElementToObjectArray( context, 'Groups', data );
}
})
}
catch(err) {
console.log(err);
}
return idArray;
}
module.exports = { resolvers } // , getGroupFile, getGroup, addGroup, addGroups }