Files
makemeahanzi/server/glyphs.js
2015-09-06 17:22:03 -04:00

46 lines
1.5 KiB
JavaScript

function save_glyph(glyph) {
check(glyph.name, String);
Glyphs.upsert({name: glyph.name}, glyph);
return glyph;
}
Meteor.methods({
get_glyph: function(name) {
return Glyphs.findOne({name: name});
},
get_next_glyph: function(glyph) {
var name = glyph ? glyph.name : undefined;
var next = Glyphs.findOne({name: {$gt: name}}, {sort: {name: 1}});
return next ? next : Glyphs.findOne({}, {sort: {name: 1}});
},
get_next_glyph_skip_verified: function(glyph) {
var name = glyph ? glyph.name : undefined;
var next = Glyphs.findOne(
{name: {$gt: name}, 'manual.verified': {$ne: true}}, {sort: {name: 1}});
return next ? next : Glyphs.findOne(
{'manual.verified': {$ne: true}}, {sort: {name: 1}});
},
get_previous_glyph: function(glyph) {
var name = glyph ? glyph.name : undefined;
var prev = Glyphs.findOne({name: {$lt: name}}, {sort: {name: -1}});
return prev ? prev : Glyphs.findOne({}, {sort: {name: -1}});
},
get_previous_glyph_skip_verified: function(glyph) {
var name = glyph ? glyph.name : undefined;
var prev = Glyphs.findOne(
{name: {$lt: name}, 'manual.verified': {$ne: true}}, {sort: {name: -1}});
return prev ? prev : Glyphs.findOne(
{'manual.verified': {$ne: true}}, {sort: {name: -1}});
},
save_glyph: save_glyph,
save_glyphs: function(glyphs) {
for (var i = 0; i < glyphs.length; i++) {
save_glyph(glyphs[i]);
}
},
});
Meteor.startup(function() {
Glyphs._ensureIndex({name: 1}, {unique: true});
});