mirror of
https://github.com/idolpx/csdb-ng.git
synced 2025-12-06 04:38:49 -05:00
71 lines
1.5 KiB
JavaScript
71 lines
1.5 KiB
JavaScript
|
|
let globals = require('../config.js').globals;
|
|
|
|
const resolvers = {
|
|
|
|
Query: {
|
|
sid: (parent, { id }, context, info) => getSID(id),
|
|
sids: (parent, { id }, context, info) => getSIDs(id),
|
|
},
|
|
|
|
Mutation: {
|
|
createSID: (parent, { data }, context, info) => createSID(data),
|
|
|
|
updateSID: (parent, { id }, context, info) => updateSID(id),
|
|
|
|
deleteSID: (parent, { id }, context, info) => deleteSID(id),
|
|
},
|
|
|
|
//////////
|
|
SID: {
|
|
Releases: ({ ReleaseIDs }, args, context, info) => getReleases(ReleaseIDs),
|
|
}
|
|
|
|
}
|
|
|
|
getSIDFile = id => `${globals.data_path}/sid/${Math.floor(id/1000)}/${id}/sid.${id}.json`;
|
|
|
|
// Object loader
|
|
getSID = id => {
|
|
return loadJSON(getSIDFile(id));
|
|
}
|
|
getSIDs = idArray => {
|
|
data = [];
|
|
try {
|
|
idArray.forEach( id => {
|
|
// Add object
|
|
data.push(getSID(id));
|
|
})
|
|
}
|
|
catch(err) {
|
|
//console.log(err);
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
// Load object by ID or ID array
|
|
addSID = (id, context) => {
|
|
addSIDs([id], context);
|
|
return id;
|
|
}
|
|
addSIDs = (idArray, context) => {
|
|
try {
|
|
idArray.forEach( id => {
|
|
// Add object if it isn't already added
|
|
if (!objectExists(context, 'SIDs', id)) {
|
|
data = getSID(id);
|
|
addElementToObjectArray( context, 'SIDs', data );
|
|
}
|
|
})
|
|
}
|
|
catch(err) {
|
|
// console.log(err);
|
|
}
|
|
|
|
return idArray;
|
|
}
|
|
|
|
module.exports = { resolvers } // , getSIDFile, getSID, addSID, addSIDs }
|
|
|