'use strict';

const url = require('url');

const ServiceConfiguration = require('pelias-microservice-wrapper').ServiceConfiguration;

class Libpostal extends ServiceConfiguration {
  constructor(o, propertyExtractor) {
    super('libpostal', o);

    // save off the propertyExtractor function
    // this is used to extract a single property from req.  eg:
    // * _.property('clean.text')
    // * _.property('clean.parsed_text.address')
    // will return those properties from req
    this.propertyExtractor = propertyExtractor;
    
  }

  getParameters(req) {
    return {
      address: this.propertyExtractor(req)
    };

  }

  getUrl(req) {
    return url.resolve(this.baseUrl, 'parse');
  }

}

module.exports = Libpostal;