UNPKG

@windingtree/wt-search-api

Version:

NodeJS app that enables quick search over data from Winding Tree platform

57 lines (50 loc) 1.31 kB
/* eslint-disable camelcase */ const { db } = require('../../../config'); const TABLE = 'hotel_category'; const createTable = async () => { await db.schema.createTable(TABLE, (table) => { table.string('hotel_address').primary(); table.string('category').notNullable(); table.index(['category']); }); }; const dropTable = async () => { await db.schema.dropTableIfExists(TABLE); }; /** * Create or insert hotel location data. * * @param {String} hotelAddress * @param {Number} lat in degrees * @param {Number} lng in degrees * @return {Promise<void>} */ const upsert = async (hotelAddress, category) => { const existing = await db(TABLE).where({ hotel_address: hotelAddress, }).select('hotel_address'), data = { category: category.toLowerCase(), }; if (existing.length === 0) { await db(TABLE).insert(Object.assign({ hotel_address: hotelAddress }, data)); } else { await db(TABLE).where('hotel_address', hotelAddress).update(data); } }; /** * Delete hotel location data * * @param {String} hotelAddress * @return {Promise<void>} */ const delete_ = async (hotelAddress) => { await db(TABLE).where({ hotel_address: hotelAddress }).delete(); }; module.exports = { createTable, dropTable, upsert, delete: delete_, TABLE, };