# frozen_string_literal: true require 'rest-client' module PKParse class Client def parse_files(files) parse({pokemon: files}, {multipart: true}) end def parse_base64(encoded_pokemon) encoded_pokemon = [encoded_pokemon] unless encoded_pokemon.is_a? Array parse({pokemon: encoded_pokemon}.to_json, content_type: :json) end private def parse(payload, opts = {}) response = RestClient.post("#{PKParse.service_url}/parse", payload, opts) response = JSON.parse(response, symbolize_keys: true) PKParse::Response.new(response) rescue RestClient::Exception => e raise PKParse::ResponseError, e rescue JSON::ParserError => e raise PKParse::Error.new(e, 'Received invalid parse response') end end end