// Parse and return a find request

const log = require("../utils/logs.utils"); // Log Helper
const db = require("../services/dbAccess.services");
const san = require("../utils/sanitizer.utils");

// DB Query: query(collection, query)

// Define collection as all queries are for the "corpus" collection.
const col = "corpus";

async function name(id) {
  log.out(`findServices.name: Finding station name: ${id}`, "info");
  var name = san.cleanApiEndpointTxt(id.toUpperCase());
  let query = { NLCDESC: name };
  //var data = await db.query(col,query)
  return await db.query(col, query);
}

async function crs(id) {
  log.out(`findServices.crs: Finding crs: ${id}`, "info");
  var crs = san.cleanApiEndpointTxt(id.toUpperCase());
  let query = { "3ALPHA": crs };
  //var data = await db.query(col,query)
  return await db.query(col, query);
}

async function nlc(id) {
  log.out(`findServices.nlc: Finding nlc: ${id}`, "info");
  var nlc = san.cleanApiEndpointNum(id);
  let query = { NLC: parseInt(nlc) };
  log.out(`findServices.nlc: NLC Converted to int: ${query}`, "info");
  //var data = await db.query(col,query)
  return await db.query(col, query);
}

async function tiploc(id) {
  log.out(`findServices.tiploc: Finding tiploc: ${id}`, "info");
  var tiploc = san.cleanApiEndpointTxt(id.toUpperCase());
  let query = { TIPLOC: tiploc };
  //var data = await db.query(col,query)
  return await db.query(col, query);
}

async function stanox(id) {
  log.out(`findServices.stanox: Finding stanox: ${id}`, "info");
  var stanox = san.cleanApiEndpointNum(id);
  let query = { STANOX: String(stanox) };
  //var data = await db.query(col,query)
  return await db.query(col, query);
}

module.exports = {
  name,
  crs,
  nlc,
  tiploc,
  stanox,
};
