mirror of
https://github.com/vale981/Vulcan
synced 2025-03-10 12:36:39 -04:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
![]() |
import Telescope, { newMutation, editMutation, removeMutation } from 'meteor/nova:lib';
|
||
|
import Movies from './collection.js'
|
||
|
|
||
|
// Resolvers
|
||
|
Movies.mutations = {
|
||
|
|
||
|
moviesNew(root, {document}, context) {
|
||
|
return newMutation({
|
||
|
action: 'movies.new',
|
||
|
collection: context.Movies,
|
||
|
document: document,
|
||
|
currentUser: context.currentUser,
|
||
|
validate: true
|
||
|
});
|
||
|
},
|
||
|
|
||
|
moviesEdit(root, {documentId, set, unset}, context) {
|
||
|
|
||
|
const document = context.Movies.findOne(documentId);
|
||
|
const action = Users.owns(context.currentUser, document) ? 'posts.edit.own' : 'posts.edit.all';
|
||
|
|
||
|
return editMutation({
|
||
|
action: action,
|
||
|
collection: context.Movies,
|
||
|
documentId: documentId,
|
||
|
set: set,
|
||
|
unset: unset,
|
||
|
currentUser: context.currentUser,
|
||
|
validate: true
|
||
|
});
|
||
|
},
|
||
|
|
||
|
moviesRemove(root, {documentId}, context) {
|
||
|
|
||
|
const document = context.Movies.findOne(documentId);
|
||
|
const action = Users.owns(context.currentUser, document) ? 'movies.remove.own' : 'movies.remove.all';
|
||
|
|
||
|
return removeMutation({
|
||
|
action: action,
|
||
|
collection: context.Movies,
|
||
|
documentId: documentId,
|
||
|
currentUser: context.currentUser,
|
||
|
validate: true
|
||
|
});
|
||
|
},
|
||
|
|
||
|
};
|
||
|
|
||
|
// GraphQL mutations
|
||
|
Telescope.graphQL.addMutation('moviesNew(document: moviesInput) : Movie');
|
||
|
Telescope.graphQL.addMutation('moviesEdit(documentId: String, set: moviesInput, unset: moviesUnset) : Movie');
|
||
|
Telescope.graphQL.addMutation('moviesRemove(documentId: String) : Movie');
|
||
|
|
||
|
export default Movies.mutations;
|