| 1234567891011121314151617181920212223242526272829 |
- # 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
|