diff --git a/Gemfile.lock b/Gemfile.lock index bae22b64ee..65bc7f2d32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -238,7 +238,7 @@ GEM mimemagic (0.3.2) mini_magick (4.9.2) mini_mime (1.0.1) - mini_portile2 (2.3.0) + mini_portile2 (2.4.0) minitest (5.11.3) momentjs-rails (2.20.1) railties (>= 3.1) @@ -249,8 +249,8 @@ GEM net-ssh (5.0.2) newrelic_rpm (5.6.0.349) nio4r (2.3.1) - nokogiri (1.8.5) - mini_portile2 (~> 2.3.0) + nokogiri (1.10.1) + mini_portile2 (~> 2.4.0) notiffany (0.1.1) nenv (~> 0.1) shellany (~> 0.0) diff --git a/app/jobs/update_diaper_partner_job.rb b/app/jobs/update_diaper_partner_job.rb index 9bcab5c8d2..88c88599d6 100644 --- a/app/jobs/update_diaper_partner_job.rb +++ b/app/jobs/update_diaper_partner_job.rb @@ -4,7 +4,12 @@ class UpdateDiaperPartnerJob def perform(partner_id) @partner = Partner.find(partner_id) - DiaperPartnerClient.post(@partner.attributes) if Flipper.enabled?(:email_active) - @partner.update(status: "Pending") + @response = DiaperPartnerClient.post(@partner.attributes) if Flipper.enabled?(:email_active) + + if @response&.value == Net::HTTPSuccess + @partner.update(status: "Pending") + else + @partner.update(status: "Error") + end end end diff --git a/app/services/diaper_partner_client.rb b/app/services/diaper_partner_client.rb index 592822d8fd..b289a0710a 100644 --- a/app/services/diaper_partner_client.rb +++ b/app/services/diaper_partner_client.rb @@ -1,6 +1,6 @@ module DiaperPartnerClient def self.post(attributes) - return if Rails.env != "production" + return if Rails.env != "production" # did ryan change this from development? partner = { partner: { diaper_bank_id: attributes["organization_id"], diff --git a/db/schema.rb b/db/schema.rb index 2b7b01217d..8434d0e340 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -222,7 +222,6 @@ t.string "zipcode" t.float "latitude" t.float "longitude" - t.text "default_email_text" t.index ["latitude", "longitude"], name: "index_organizations_on_latitude_and_longitude" t.index ["short_name"], name: "index_organizations_on_short_name" end diff --git a/spec/jobs/update_diaper_partner_job_spec.rb b/spec/jobs/update_diaper_partner_job_spec.rb index 1279e51552..0a359455cb 100644 --- a/spec/jobs/update_diaper_partner_job_spec.rb +++ b/spec/jobs/update_diaper_partner_job_spec.rb @@ -20,5 +20,39 @@ UpdateDiaperPartnerJob.perform_async(partner.id) end end + + describe "Responses >" do + before do + allow(Flipper).to receive(:enabled?) { true } + @partner = create(:partner) + end + context "with a successful POST response" do + before do + response = double("Response", value: Net::HTTPSuccess) + allow(DiaperPartnerClient).to receive(:post).and_return(response) + end + + it "sets the partner status to pending" do + expect do + UpdateDiaperPartnerJob.perform_async(@partner.id) + @partner.reload + end.to change { @partner.status }.to("Pending") + end + end + + context "with a unsuccessful POST response" do + before do + response = double("Response", value: nil) + allow(DiaperPartnerClient).to receive(:post).and_return(response) + end + + it "sets the partner status to error" do + expect do + UpdateDiaperPartnerJob.perform_async(@partner.id) + @partner.reload + end.to change { @partner.status }.to("Error") + end + end + end end end