Получение Запрошенный ресурс не поддерживает http-метод «GET». HTTParty Rails 6 - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь создать сервисный уровень для стороннего API под названием Goodhire. У меня проблема с использованием сообщения для HTTParty приводит к запросу get. Я получаю сообщение об ошибке "{\" Message \ ": \" Запрашиваемый ресурс не поддерживает http-метод "GET". \ "}". Мне нужно иметь возможность создавать отчет, а также мне нужно иметь возможность получать этот отчет, используя мой webhook. 127.0.0.1:3000/good_hire_webhook_callback (будет использовать ngrok для тестирования). Как я могу просто отправить в конечную точку и получить результаты обратно для обоих запросов GET / POST? Я что-то упустил или я могу улучшить свое решение? документация для API GoodHireApiDocs

Создание отчета POST v1 / Report

curl -i -X POST -H "Authorization: ApiKey API_CONSTANT" \
 -H "Content-Type: application/json" \
-d '{
   "Candidate": {
      "FirstName": "Test",
      "LastName": "Candidate",
      "Email": "candidate@example.com"
   },
   "Offer": {
     "Products": ["RPT_BASIC"]
   },
   "RequestOptions": {
     "SendPurchaseReceipt": true,
 }
}'

Класс обслуживания Goodhire API

   class GoodHire
     include HTTParty
     base_uri 'api-sandbox.goodhire.com'
     API_KEY = "SECRET"

     def initialize(apikey = API_KEY)
      @options = {query: {ApiKey: apikey}}
     end

    def get candidate_report(candidate_first_name, candidate_last_name, candidate_email)
      options = {body: {
          Candidate: {
           FirstName: candidate_first_name,
           LastName: candidate_last_name,
           Email: candidate_email
        }
      }
    }
     self.class.get("/v1/Candidate", @options.merge({q: options})
    end

      def create_candidate_report(candidate_first_name, candidate_last_name, candidate_email, offer, request_options = true)
     options = {body: {
          Candidate: {
           FirstName: candidate_first_name,
           LastName: candidate_last_name,
           Email: candidate_email,
           },
           Offer: {
            Products: ["#{offer}"]
         },
         RequestOptions: {
          SendPurchaseReceipt: request_options
         }
       }
     }
     results = self.class.post("/v1/Report", @options.merge({q: options})
     results
    end

 def retrieve_candidate_report_with_id(report_id)
  self.class.get("/v1/report/#{report_id}", @options)
 end
...