Vulcan/packages/example-reactions/lib/modules/movies/schema.js
2017-09-28 21:28:29 +09:00

68 lines
1.2 KiB
JavaScript

/*
A SimpleSchema-compatible JSON schema
*/
const schema = {
// default properties
_id: {
type: String,
optional: true,
viewableBy: ['guests'],
},
createdAt: {
type: Date,
optional: true,
viewableBy: ['guests'],
onInsert: (document, currentUser) => {
return new Date();
}
},
userId: {
type: String,
optional: true,
viewableBy: ['guests'],
resolveAs: {
fieldName: 'user',
type: 'User',
resolver: (movie, args, context) => {
return context.Users.findOne({ _id: movie.userId }, { fields: context.Users.getViewableFields(context.currentUser, context.Users) });
},
addOriginalField: true
}
},
// custom properties
name: {
label: 'Name',
type: String,
optional: true,
viewableBy: ['guests'],
insertableBy: ['members'],
editableBy: ['members'],
},
year: {
label: 'Year',
type: String,
optional: true,
viewableBy: ['guests'],
insertableBy: ['members'],
editableBy: ['members'],
},
review: {
label: 'Review',
type: String,
optional: true,
control: 'textarea',
viewableBy: ['guests'],
insertableBy: ['members'],
editableBy: ['members']
},
};
export default schema;