// Get crate by ID export async function getById(parentValue, { crateId }) { const crate = await models.Crate.findOne({ where: { id: crateId } }) if (!crate) { // Crate does not exists throw new Error('The crate you are looking for does not exists or has been discontinued.') } else { return crate } }
async function generateSlug(Model, name, filter = {}) { const origSlug = slugify(name); const user = await Model.findOne(Object.assign({ slug: origSlug }, filter), 'id'); if (!user) { return origSlug; } return createUniqueSlug(Model, origSlug, 1); }
getNode (id) { deprecate(`${this.typeName}.getNode() is deprecated. Use ${this.typeName}.getNodeById() instead.`) return this._collection.findOne( typeof id === 'string' ? { id } : id ) }
static async getBySlug({ slug }) { const bookDoc = await this.findOne({ slug }); if (!bookDoc) { throw new Error('Book not found'); } const book = bookDoc.toObject(); book.chapters = (await Chapter.find({ bookId: book._id }, 'title slug').sort({ order: 1 })).map( (chapter) => chapter.toObject(), ); return book; }
async function getEmailTemplate(name, params) { const source = await EmailTemplate.findOne({ name }); if (!source) { throw new Error(`No EmailTemplates found. Please check that at least one is generated at server startup, restart your server and try again.`); } return { message: _.template(source.message)(params), subject: _.template(source.subject)(params), }; }
async function createUniqueSlug(Model, slug, count) { const user = await Model.findOne({ slug: `${slug}-${count}` }, 'id'); if (!user) { return `${slug}-${count}`; } return createUniqueSlug(Model, slug, count + 1); }
// Get product by slug export async function getBySlug(parentValue, { slug }) { const product = await models.Product.findOne({ where: { slug } }) if (!product) { // Product does not exists throw new Error('The product you are looking for does not exists or has been discontinued.') } else { return product } }
async function createUniqueSlug(Model, slug, count) { const user = await Model.findOne({ slug: `${slug}-${count}` }, 'id'); if (!user) { return `${slug}-${count}`; } return createUniqueSlug(Model, slug, count + 1); }
async function createUniqueSlug(Model, slug, count) { const user = await Model.findOne({ slug: `${slug}-${count}` }, 'id'); if (!user) { return `${slug}-${count}`; } return createUniqueSlug(Model, slug, count + 1); }
async function generateSlug(Model, name, filter = {}) { const origSlug = slugify(name); const user = await Model.findOne(Object.assign({ slug: origSlug }, filter), 'id'); if (!user) { return origSlug; } return createUniqueSlug(Model, origSlug, 1); }
async function generateSlug(Model, name, filter = {}) { const origSlug = slugify(name); const user = await Model.findOne(Object.assign({ slug: origSlug }, filter), 'id'); if (!user) { return origSlug; } return createUniqueSlug(Model, origSlug, 1); }
async function createUniqueSlug(Model, slug, count) { const user = await Model.findOne({ slug: `${slug}-${count}` }, 'id'); if (!user) { return `${slug}-${count}`; } return createUniqueSlug(Model, slug, count + 1); }
async function generateSlug(Model, name, filter = {}) { const origSlug = slugify(name); const user = await Model.findOne(Object.assign({ slug: origSlug }, filter), 'id'); if (!user) { return origSlug; } return createUniqueSlug(Model, origSlug, 1); }
async function createUniqueSlug(Model, slug, count) { const user = await Model.findOne({ slug: `${slug}-${count}` }, 'id'); if (!user) { return `${slug}-${count}`; } return createUniqueSlug(Model, slug, count + 1); }
async function getEmailTemplate(name, params) { const source = await EmailTemplate.findOne({ name }); if (!source) { throw new Error(`No EmailTemplates found. Please check that at least one is generated at server startup, restart your server and try again.`); } return { message: _.template(source.message)(params), subject: _.template(source.subject)(params), }; }