diff --git a/lib/trmnl/api/container.rb b/lib/trmnl/api/container.rb index a662fc4..c71b82f 100644 --- a/lib/trmnl/api/container.rb +++ b/lib/trmnl/api/container.rb @@ -10,7 +10,7 @@ module TRMNL module Container extend Containable - register(:client) { API::Client.new } + register(:requester) { API::Requester.new } register(:logger) { Cogger.new id: "trmnl-api", formatter: :json } register :http do diff --git a/lib/trmnl/api/endpoints/current_screen.rb b/lib/trmnl/api/endpoints/current_screen.rb index 330fd59..8344ae0 100644 --- a/lib/trmnl/api/endpoints/current_screen.rb +++ b/lib/trmnl/api/endpoints/current_screen.rb @@ -8,7 +8,7 @@ module TRMNL # Handles API request/response. class CurrentScreen include Dependencies[ - :client, + :requester, contract: "contracts.current_screen", model: "models.current_screen" ] @@ -16,7 +16,7 @@ module TRMNL include Pipeable def call token: - pipe client.get("current_screen", headers: {"Access-Token" => token}), + pipe requester.get("current_screen", headers: {"Access-Token" => token}), try(:parse, catch: JSON::ParserError), validate(contract, as: :to_h), to(model, :for) diff --git a/lib/trmnl/api/endpoints/display.rb b/lib/trmnl/api/endpoints/display.rb index 77b3eeb..a8f3fdb 100644 --- a/lib/trmnl/api/endpoints/display.rb +++ b/lib/trmnl/api/endpoints/display.rb @@ -7,11 +7,11 @@ module TRMNL module Endpoints # Handles API request/response. class Display - include Dependencies[:client, contract: "contracts.display", model: "models.display"] + include Dependencies[:requester, contract: "contracts.display", model: "models.display"] include Pipeable def call token: - pipe client.get("display", headers: {"Access-Token" => token}), + pipe requester.get("display", headers: {"Access-Token" => token}), try(:parse, catch: JSON::ParserError), validate(contract, as: :to_h), to(model, :for) diff --git a/lib/trmnl/api/endpoints/firmware.rb b/lib/trmnl/api/endpoints/firmware.rb index a78e831..b6a01b0 100644 --- a/lib/trmnl/api/endpoints/firmware.rb +++ b/lib/trmnl/api/endpoints/firmware.rb @@ -7,11 +7,11 @@ module TRMNL module Endpoints # Handles API request/response. class Firmware - include Dependencies[:client, contract: "contracts.firmware", model: "models.firmware"] + include Dependencies[:requester, contract: "contracts.firmware", model: "models.firmware"] include Pipeable def call - pipe client.get("firmware/latest"), + pipe requester.get("firmware/latest"), try(:parse, catch: JSON::ParserError), validate(contract, as: :to_h), to(model, :for) diff --git a/lib/trmnl/api/endpoints/log.rb b/lib/trmnl/api/endpoints/log.rb index 953b43c..90643de 100644 --- a/lib/trmnl/api/endpoints/log.rb +++ b/lib/trmnl/api/endpoints/log.rb @@ -5,9 +5,9 @@ module TRMNL module Endpoints # Handles API request/response. class Log - include Dependencies[:client] + include Dependencies[:requester] - def call(token:, **) = client.post("log", headers: {"Access-Token" => token}, **) + def call(token:, **) = requester.post("log", headers: {"Access-Token" => token}, **) end end end diff --git a/lib/trmnl/api/endpoints/setup.rb b/lib/trmnl/api/endpoints/setup.rb index 92eef23..769f213 100644 --- a/lib/trmnl/api/endpoints/setup.rb +++ b/lib/trmnl/api/endpoints/setup.rb @@ -7,11 +7,11 @@ module TRMNL module Endpoints # Handles API request/response. class Setup - include Dependencies[:client, contract: "contracts.setup", model: "models.setup"] + include Dependencies[:requester, contract: "contracts.setup", model: "models.setup"] include Pipeable def call id: - pipe client.get("setup", headers: {"ID" => id}), + pipe requester.get("setup", headers: {"ID" => id}), try(:parse, catch: JSON::ParserError), validate(contract, as: :to_h), to(model, :for) diff --git a/lib/trmnl/api/client.rb b/lib/trmnl/api/requester.rb similarity index 98% rename from lib/trmnl/api/client.rb rename to lib/trmnl/api/requester.rb index e56c460..572fc83 100644 --- a/lib/trmnl/api/client.rb +++ b/lib/trmnl/api/requester.rb @@ -7,7 +7,7 @@ module TRMNL module API # Provides a low level configurable and monadic API client. # :reek:DataClump - class Client + class Requester include Dry::Monads[:result] HEADERS = {}.freeze diff --git a/spec/lib/trmnl/api/endpoints/current_screen_spec.rb b/spec/lib/trmnl/api/endpoints/current_screen_spec.rb index a4d246f..75c619e 100644 --- a/spec/lib/trmnl/api/endpoints/current_screen_spec.rb +++ b/spec/lib/trmnl/api/endpoints/current_screen_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" RSpec.describe TRMNL::API::Endpoints::CurrentScreen do - subject(:endpoint) { described_class.new client: } + subject(:endpoint) { described_class.new requester: } include_context "with application dependencies" - let(:client) { TRMNL::API::Client.new http: } + let(:requester) { TRMNL::API::Requester.new http: } describe "#call" do context "with success" do @@ -58,7 +58,7 @@ RSpec.describe TRMNL::API::Endpoints::CurrentScreen do end it "answers error response" do - result = described_class.new(client:).call token: "secret" + result = described_class.new(requester:).call token: "secret" expect(result).to match(Failure(be_a(HTTP::Response))) end end diff --git a/spec/lib/trmnl/api/endpoints/display_spec.rb b/spec/lib/trmnl/api/endpoints/display_spec.rb index 0642ddb..206ec56 100644 --- a/spec/lib/trmnl/api/endpoints/display_spec.rb +++ b/spec/lib/trmnl/api/endpoints/display_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" RSpec.describe TRMNL::API::Endpoints::Display do - subject(:endpoint) { described_class.new client: } + subject(:endpoint) { described_class.new requester: } include_context "with application dependencies" - let(:client) { TRMNL::API::Client.new http: } + let(:requester) { TRMNL::API::Requester.new http: } describe "#call" do context "with success" do @@ -64,7 +64,7 @@ RSpec.describe TRMNL::API::Endpoints::Display do end it "answers failure response" do - result = described_class.new(client:).call token: "secret" + result = described_class.new(requester:).call token: "secret" expect(result).to match(Failure(be_a(HTTP::Response))) end end diff --git a/spec/lib/trmnl/api/endpoints/firmware_spec.rb b/spec/lib/trmnl/api/endpoints/firmware_spec.rb index 2c50379..7cd6b02 100644 --- a/spec/lib/trmnl/api/endpoints/firmware_spec.rb +++ b/spec/lib/trmnl/api/endpoints/firmware_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" RSpec.describe TRMNL::API::Endpoints::Firmware do - subject(:endpoint) { described_class.new client: } + subject(:endpoint) { described_class.new requester: } include_context "with application dependencies" - let(:client) { TRMNL::API::Client.new http: } + let(:requester) { TRMNL::API::Requester.new http: } describe "#call" do let :http do @@ -52,7 +52,7 @@ RSpec.describe TRMNL::API::Endpoints::Firmware do end it "answers failure" do - result = described_class.new(client:).call + result = described_class.new(requester:).call expect(result).to match(Failure(be_a(HTTP::Response))) end end diff --git a/spec/lib/trmnl/api/endpoints/log_spec.rb b/spec/lib/trmnl/api/endpoints/log_spec.rb index f845ee4..34fa2d8 100644 --- a/spec/lib/trmnl/api/endpoints/log_spec.rb +++ b/spec/lib/trmnl/api/endpoints/log_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" RSpec.describe TRMNL::API::Endpoints::Log do - subject(:endpoint) { described_class.new client: } + subject(:endpoint) { described_class.new requester: } include_context "with application dependencies" - let(:client) { TRMNL::API::Client.new http: } + let(:requester) { TRMNL::API::Requester.new http: } describe "#call" do let :http do diff --git a/spec/lib/trmnl/api/endpoints/setup_spec.rb b/spec/lib/trmnl/api/endpoints/setup_spec.rb index 6259316..88c8ea3 100644 --- a/spec/lib/trmnl/api/endpoints/setup_spec.rb +++ b/spec/lib/trmnl/api/endpoints/setup_spec.rb @@ -3,11 +3,11 @@ require "spec_helper" RSpec.describe TRMNL::API::Endpoints::Setup do - subject(:endpoint) { described_class.new client: } + subject(:endpoint) { described_class.new requester: } include_context "with application dependencies" - let(:client) { TRMNL::API::Client.new http: } + let(:requester) { TRMNL::API::Requester.new http: } describe "#call" do context "with success" do @@ -58,7 +58,7 @@ RSpec.describe TRMNL::API::Endpoints::Setup do end it "answers failure" do - result = described_class.new(client:).call id: "ABC" + result = described_class.new(requester:).call id: "ABC" expect(result).to match(Failure(be_a(HTTP::Response))) end end diff --git a/spec/lib/trmnl/api/client_spec.rb b/spec/lib/trmnl/api/requester_spec.rb similarity index 83% rename from spec/lib/trmnl/api/client_spec.rb rename to spec/lib/trmnl/api/requester_spec.rb index 70535fa..1d75e10 100644 --- a/spec/lib/trmnl/api/client_spec.rb +++ b/spec/lib/trmnl/api/requester_spec.rb @@ -2,15 +2,15 @@ require "spec_helper" -RSpec.describe TRMNL::API::Client do +RSpec.describe TRMNL::API::Requester do using Refinements::Hash - subject(:client) { described_class.new http: } + subject(:requester) { described_class.new http: } describe "#initialize" do it "initializes with block" do - client = described_class.new { |settings| settings.content_type = "application/xml" } - body = client.get("bogus").failure.to_s + requester = described_class.new { |settings| settings.content_type = "application/xml" } + body = requester.get("bogus").failure.to_s expect(body).to include("Not Found") end @@ -38,7 +38,7 @@ RSpec.describe TRMNL::API::Client do end it "answers response" do - response = client.get "current_screen" + response = requester.get "current_screen" payload = response.fmap(&:parse).bind(&:symbolize_keys!) expect(payload).to eq( @@ -56,7 +56,7 @@ RSpec.describe TRMNL::API::Client do let(:response) { instance_spy HTTP::Response } it "includes custom header" do - client.get "current_screen", headers: {"ID" => "123"} + requester.get "current_screen", headers: {"ID" => "123"} expect(http).to have_received(:headers).with( "Content-Type" => "application/json", @@ -82,7 +82,7 @@ RSpec.describe TRMNL::API::Client do end it "answers failure response" do - response = client.get "current_screen" + response = requester.get "current_screen" payload = response.alt_map { |result| result.parse.symbolize_keys! } expect(payload).to be_failure(message: "Danger!") @@ -101,7 +101,7 @@ RSpec.describe TRMNL::API::Client do end it "answers response" do - result = client.post "log", log: {} + result = requester.post "log", log: {} expect(result.success.status).to eq(204) end end