28 Commits
Author SHA1 Message Date
Brooke Kuhlmann 3685770d07 Updated requester to log and fail SSL, connection, and timeout errors
Necessary to log debug information and gracefully handle failures. Other errors might need to be tracked in the future but, for now, these are the most common.

Reek has been updated to ignore the logger `#call` method because keeping exception logic in a single place is nice for quick lookup. The data clump smell is also being ignored because we have to repeat passing in custom headers (at least for now).

RuboCop has also been updated to ignore the longer parameter list. This is an unfortunte side effect of the HTTP gem which uses multiple keyword arguments for making requests and so this design carries over into our implementation. Ignoring for now.

Milestone: minor
2025-08-06 12:30:57 -06:00
Brooke Kuhlmann e9dd1aa4a9 Added client models endpoint
Necessary to provide access to the models endpoint via a single object.

Milestone: minor
2025-07-29 16:00:51 -06:00
Brooke Kuhlmann 388509d5dd Added model endpoint
Necessary to perform API request, parse the response, validate the response, and hydrate into a whole value object for further processing.

Milestone: minor
2025-07-29 16:00:51 -06:00
Brooke Kuhlmann 252a28ef30 Added model
Necessary to provide a whole value object as the output from the API response.

Milestone: minor
2025-07-29 16:00:51 -06:00
Brooke Kuhlmann dcf0e870fb Added model contract
Necessary to validate the HTTP response from the Core server.

Milestone: minor
2025-07-29 16:00:51 -06:00
Brooke Kuhlmann 9b47c7bae0 Added client custom inspection
Necessary to reduce verbosity of output when inspecting the client.

Milestone: minor
2025-05-19 08:21:40 -06:00
Brooke Kuhlmann 174d6ace3c Added endpoints custom inspection
Necessary to reduce object inspection verbosity especially with Dry Schema objects.

Milestone: minor
2025-05-19 08:21:40 -06:00
Brooke Kuhlmann 5b23be83ce Added RSpec shared endpoint examples
Necessary to a define shared example for all endpoints to reduce duplication. This'll soon be used in all endpoint specs.

Milestone: minor
2025-05-19 08:21:40 -06:00
Brooke Kuhlmann 8c7e3ffb6b Added primary Object API
Necessary to obtain an API client with access to all endpoints.

Milestone: minor
2025-05-05 17:00:55 -06:00
Brooke Kuhlmann 386a36e829 Added client
Necessary to provide a single object with access to all endpoints.

Milestone: minor
2025-05-05 17:00:55 -06:00
Brooke Kuhlmann 2f5938a808 Refactored requester to inject dependencies
Reduces duplication by injecting what is already registered.

Milestone: patch
2025-05-05 17:00:55 -06:00
Brooke Kuhlmann 175795b2b2 Added container settings registration
Necessary to provide application wide access to the configuration which will soon be shared by the newly renamed requester and client (not implemented yet).

Milestone: minor
2025-05-05 17:00:55 -06:00
Brooke Kuhlmann 25086e5594 Updated client as requester
Necessary to make space for a new client object that will provide access to all API endpoints. The rename help denote that this object is purely for low level HTTP API requests.

Milestone: minor
2025-05-05 17:00:55 -06:00
Brooke Kuhlmann 0e579ea701 Added setup endpoint
Necessary to handle the request and response of the setup API endpoint.
2025-04-22 14:24:34 -06:00
Brooke Kuhlmann f635aa4cd7 Added log endpoint
Necessary to handle the request and response of the log API endpoint.
2025-04-22 14:24:34 -06:00
Brooke Kuhlmann a941c8f180 Added firmware endpoint
Necessary to handle the request and response of the firmware API endpoint.
2025-04-22 14:24:34 -06:00
Brooke Kuhlmann 2da39573fc Added display endpoint
Necessary to handle the request and response of the display API endpoint.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann 9b6446c5bb Added current screen endpoint
Necessary to handle the request and response to the current screen API endpoint.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann 7c8db493fd Added application container
Necessary to register common application dependencies for potential injection as desired.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann 0dfdee3a9a Added setup model
Necessary to model the API response.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann 3d183df433 Added firmware model
Necessary to model the API response payload.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann 8137e1f5f0 Added display model
Necessary to model the API response payload.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann e7bac9edc3 Added current screen model
Necessary to model the API response payload.
2025-04-22 14:24:33 -06:00
Brooke Kuhlmann cfd9f6d1f6 Added client
Necessary to provide the primary client for making low-level API requests.

RuboCop and Reek issues have been marked for future consideration and improvement because these issues stem from Core's API (and subsequent Firmware design) and should be fixed in the Core/Firmware implementation first.
2025-04-22 14:24:32 -06:00
Brooke Kuhlmann 70e1d24796 Added configuration loader
Necessary to load the configuration with preference for any defaults set via the environment.
2025-04-22 14:24:32 -06:00