# frozen_string_literal: true

require 'json'
require 'net/http'
require 'net/https'
require 'uri'

class CdrSignalApi
  def initialize(api_url, token)
    @token = token
    @last_update = 0
    @api_url = api_url
  end

  def parse_hash(hash)
    ret = {}
    hash.map do |k, v|
      ret[k] = CGI.encode(v.to_s.gsub('\\\'', '\''))
    end
    ret
  end

  def get(api)
    url = "#{@api_url}/bots/#{@token}/#{api}"
    JSON.parse(Faraday.get(url, { Accept: "application/json" }).body)
  end

  def post(api, params = {})
    url = "#{@api_url}/bots/#{@token}/#{api}"
    JSON.parse(Faraday.post(url, params.to_json, { "Content-Type": "application/json", Accept: "application/json" }).body)
  end

  def fetch_self
    get('')
  end

  def send_message(recipient, text, options = {})
    post('send', { phoneNumber: recipient.to_s, message: text }.merge(parse_hash(options)))
  end
end
