const formatString = require('../helpers/strings').formatString

class Queries {
  constructor () {
    this.filter = null
    this.value = null
  }

  /**
   * Fonction permettant de générer la query sur artist et title
   * @param  {Array} line
   * @param  {Integer} start
   */
  setBaseFilter (line, start) {
    let value = ''
    for (let i = start; i < line.length; i += 1) {
      value += ' ' + line[i]
    }
    value = value.replace(' ', '')
    const filter = {
      $or: [
        {
          artist: formatString(value)
        },
        {
          title: formatString(value)
        }
      ]
    }

    this.filter = filter
    this.value = value
  }

  /**
   * Getter pour le filter
   * @return {Object}
   */
  getFilter () {
    return this.filter
  }

  /**
   * Getter pour le texte filtré
   * @return {String}
   */
  getValue () {
    return this.value
  }
}

module.exports = Queries