client.rb 805 B

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