client.rb 744 B

12345678910111213141516171819202122232425262728
  1. require 'rest-client'
  2. module PKParse
  3. class Client
  4. def parse(files)
  5. response = RestClient.post("#{PKParse.service_url}/parse", form_key(files) => files, multipart: true)
  6. response = JSON.parse(response, symbolize_keys: true)
  7. PKParse::Response.new(response)
  8. rescue RestClient::Exception => e
  9. raise PKParse::ResponseError.new(e)
  10. rescue JSON::ParserError => e
  11. raise PKParse::Error.new(e, "Received invalid parse response")
  12. end
  13. private
  14. def form_key(files)
  15. # RestClient will add brackets to array form values, but go-pkparse-server
  16. # expects brackets regardless of multivalue or not.
  17. if files.size > 1
  18. "pkmn"
  19. else
  20. "pkmn[]"
  21. end
  22. end
  23. end
  24. end