mirror of
https://github.com/vale981/Vulcan
synced 2025-03-10 04:26:41 -04:00

* Revert "add note link to issue in collection2 on mutation insert, remove debug console logs on mutation edit" This reverts commit7a15103de7
. * Revert "node simpl-schema + collection2-core: fix vote by specifying the right type of the array (dont use blackbox in the end!)" This reverts commite894c3224c
. * Revert "add graphql date type (fix problem with node simple schema), fix an update bug on date picker, add edit check on custom post item, add `blackbox: true` for arrays field (validation problem with simple-schema)" This reverts commit9d84fbec98
. * Revert "use node `simpl-schema` by aldeed to replace `meteor/aldeed:simple-schema` ; use the meteor collection2 core package as recommended" This reverts commit016935f4fa
. * revert before node-simple-schema, fix obj.hasOwnProperty undefined error thrown by simple-schema & collection2 * CustomPostsItem: check on renderActions; withDocument/List: pollInterval 20seconds by default; DateTime form component enhancement + GraphQLDate type
243 lines
4.4 KiB
JavaScript
243 lines
4.4 KiB
JavaScript
import Users from "meteor/nova:users";
|
|
import Posts from "meteor/nova:posts";
|
|
import Comments from "meteor/nova:comments";
|
|
|
|
/**
|
|
* @summary Vote schema
|
|
* @type {SimpleSchema}
|
|
*/
|
|
const voteSchema = new SimpleSchema({
|
|
itemId: {
|
|
type: String
|
|
},
|
|
power: {
|
|
type: Number,
|
|
optional: true
|
|
},
|
|
votedAt: {
|
|
type: Date,
|
|
optional: true
|
|
}
|
|
});
|
|
|
|
Users.addField([
|
|
/**
|
|
An array containing comments upvotes
|
|
*/
|
|
{
|
|
fieldName: '__upvotedComments',
|
|
fieldSchema: {
|
|
type: [voteSchema],
|
|
publish: false,
|
|
optional: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: '__upvotedComments: [Vote]',
|
|
}
|
|
},
|
|
/**
|
|
An array containing posts upvotes
|
|
*/
|
|
{
|
|
fieldName: '__upvotedPosts',
|
|
fieldSchema: {
|
|
type: [voteSchema],
|
|
publish: false,
|
|
optional: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: '__upvotedPosts: [Vote]',
|
|
}
|
|
},
|
|
/**
|
|
An array containing comment downvotes
|
|
*/
|
|
{
|
|
fieldName: '__downvotedComments',
|
|
fieldSchema: {
|
|
type: [voteSchema],
|
|
publish: false,
|
|
optional: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: '__downvotedComments: [Vote]',
|
|
}
|
|
},
|
|
/**
|
|
An array containing posts downvotes
|
|
*/
|
|
{
|
|
fieldName: '__downvotedPosts',
|
|
fieldSchema: {
|
|
type: [voteSchema],
|
|
publish: false,
|
|
optional: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: '__downvotedPosts: [Vote]',
|
|
}
|
|
},
|
|
]);
|
|
|
|
Posts.addField([
|
|
/**
|
|
How many upvotes the post has received
|
|
*/
|
|
{
|
|
fieldName: "upvotes",
|
|
fieldSchema: {
|
|
type: Number,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
An array containing the `_id`s of the post's upvoters
|
|
*/
|
|
{
|
|
fieldName: "upvoters",
|
|
fieldSchema: {
|
|
type: [String],
|
|
optional: true,
|
|
publish: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: 'upvoters: [User]',
|
|
}
|
|
},
|
|
/**
|
|
How many downvotes the post has received
|
|
*/
|
|
{
|
|
fieldName: "downvotes",
|
|
fieldSchema: {
|
|
type: Number,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
An array containing the `_id`s of the post's downvoters
|
|
*/
|
|
{
|
|
fieldName: "downvoters",
|
|
fieldSchema: {
|
|
type: [String],
|
|
optional: true,
|
|
publish: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: 'downvoters: [User]',
|
|
}
|
|
},
|
|
/**
|
|
The post's base score (not factoring in the post's age)
|
|
*/
|
|
{
|
|
fieldName: "baseScore",
|
|
fieldSchema: {
|
|
type: Number,
|
|
decimal: true,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
The post's current score (factoring in age)
|
|
*/
|
|
{
|
|
fieldName: "score",
|
|
fieldSchema: {
|
|
type: Number,
|
|
decimal: true,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
]);
|
|
|
|
Comments.addField([
|
|
/**
|
|
The number of upvotes the comment has received
|
|
*/
|
|
{
|
|
fieldName: "upvotes",
|
|
fieldSchema: {
|
|
type: Number,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
An array containing the `_id`s of upvoters
|
|
*/
|
|
{
|
|
fieldName: "upvoters",
|
|
fieldSchema: {
|
|
type: [String],
|
|
optional: true,
|
|
publish: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: 'upvoters: [User]',
|
|
}
|
|
},
|
|
/**
|
|
The number of downvotes the comment has received
|
|
*/
|
|
{
|
|
fieldName: "downvotes",
|
|
fieldSchema: {
|
|
type: Number,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
An array containing the `_id`s of downvoters
|
|
*/
|
|
{
|
|
fieldName: "downvoters",
|
|
fieldSchema: {
|
|
type: [String],
|
|
optional: true,
|
|
publish: true,
|
|
viewableBy: ['guests'],
|
|
resolveAs: 'downvoters: [User]',
|
|
}
|
|
},
|
|
/**
|
|
The comment's base score (not factoring in the comment's age)
|
|
*/
|
|
{
|
|
fieldName: "baseScore",
|
|
fieldSchema: {
|
|
type: Number,
|
|
decimal: true,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
/**
|
|
The comment's current score (factoring in age)
|
|
*/
|
|
{
|
|
fieldName: "score",
|
|
fieldSchema: {
|
|
type: Number,
|
|
decimal: true,
|
|
optional: true,
|
|
publish: true,
|
|
defaultValue: 0,
|
|
viewableBy: ['guests'],
|
|
}
|
|
},
|
|
]);
|
|
|