import knex from './knex'; function curateDatabaseShelf(shelf) { if (!shelf) { return null; } return { id: shelf.id, slug: shelf.slug, name: shelf.slug, }; } async function fetchShelf(shelfId) { const shelfEntry = await knex('shelves') .where((builder) => { const id = Number(shelfId); if (Number.isNaN(id)) { builder.where('slug', shelfId); return; } builder.where('id', shelfId); }) .first(); return curateDatabaseShelf(shelfEntry); } async function fetchShelves({ limit = 10 } = {}) { const shelfEntries = await knex('shelves').limit(limit); return shelfEntries.map((shelfEntry) => curateDatabaseShelf(shelfEntry)); } async function createShelf(shelf, user) { const shelfEntry = await knex('shelves') .insert({ slug: shelf.slug, founder_id: user.id, }) .returning('*'); console.log('entry', shelfEntry); return curateDatabaseShelf(shelfEntry); } export { fetchShelf, fetchShelves, createShelf, curateDatabaseShelf, };