client.rb 803 B

1234567891011121314151617181920212223242526272829
  1. # frozen_string_literal: true
  2. require 'rest-client'
  3. module PKParse
  4. class Client
  5. def parse_files(files)
  6. parse({pokemon: files}, {multipart: true})
  7. end
  8. def parse_base64(encoded_pokemon)
  9. encoded_pokemon = [encoded_pokemon] unless encoded_pokemon.is_a? Array
  10. parse({pokemon: encoded_pokemon}.to_json, content_type: :json)
  11. end
  12. private
  13. def parse(payload, opts = {})
  14. response = RestClient.post("#{PKParse.service_url}/parse", payload, opts)
  15. response = JSON.parse(response, symbolize_keys: true)
  16. PKParse::Response.new(response)
  17. rescue RestClient::Exception => e
  18. raise PKParse::ResponseError, e
  19. rescue JSON::ParserError => e
  20. raise PKParse::Error.new(e, 'Received invalid parse response')
  21. end
  22. end
  23. end