51 Commits
Author SHA1 Message Date
Brooke Kuhlmann a46f4c3ec4 Updated gem dependencies
Necessary to leverage gems that are on Ruby 4.0.0 and higher. Further details can be found here:

* link:https://alchemists.io/projects[Alchemists]
* link:https://dry-rb.org[Dry RB]

The biggest change is leveraging the new RSpec helper provided by link:https://alchemists.io/projects/inspectable[Inspectable].

Milestone: minor
2026-01-02 10:03:03 -07:00
Brooke Kuhlmann 1cc2aeadc2 Added palette endpoint
Necessary to request and process Palettes API response.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann c200ae5491 Added palette model
Necessary to build a record out of the API response.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann b331402854 Added palette contract
Necessary to validate the Palette API response. I've logged and issue against our Core project to improve upon this further since the API design is inconsistent so hoping this will improve soon.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann eca4ae4f54 Added IP addresses endpoint
Necessary to request IP address data.

As addressed in the previous contract and model commits, RuboCop is updated to ignore the IP addresses in the specs since this can't be avoided.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann f54458f18f Added IP address model
Necessary to model the response.

RuboCop is updated to ignore the variable name issues since this stems from the API design. The model translates the keys to prevent this design flaw from permeating further downstream at least.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann ae74630996 Added IP address contract
Necessary to validate `ips` endpoint payloads.

RuboCop has been updated to ignore the use of `ipv4` and `ipv6` since this is a design flaw of the original API design since `version_4` or `version_6` would have been better. This'll soon be corrected (transformed) when the corresponding model is added.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann ef400115e2 Added categories endpoint
Necessary to provide access to category data.

Milestone: minor
2025-12-11 14:53:55 -07:00
Brooke Kuhlmann 7155b0a2a5 Added category contract
Necessary to validate the Contracts API response.

Milestone: minor
2025-12-11 14:53:54 -07:00
Brooke Kuhlmann 0817921ccc Added model endpoint pallete IDs and CSS attributes
Necessary to pick up latest additions to the API which picks up the `palette_ids` and `css` attributes. This also removes the `published_at` date/time since it's used and provides little value since Core never records the exact publish date of when the model/device was released.

Milestone: minor
2025-12-11 14:53:11 -07:00
Brooke Kuhlmann 4e791d669a Added custom types
Necessary to validate and cast custom types in Dry Schema objects.

RuboCop was updated to ignore IP addresses in the spec since we need to confirm the IP addresses are properly cast.

Milestone: minor
2025-12-11 14:44:05 -07:00
Brooke Kuhlmann 410fa1d6bf Added model kind attribute
Necessary to pick up latest changes to the API where all models have a kind now.

Milestone: minor
2025-09-09 13:08:27 -06:00
Brooke Kuhlmann 8a52b829d0 Updated API URI
Necessary to switch to our main domain because nothing is automated for `trmnl.app` and always is behind the changes found on `usetrmnl.com`. This'll help reduce confusion and allow for updates to be tested more quickly for this project.

Milestone: minor
2025-09-09 13:08:27 -06:00
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 21c0cc86be Removed model endpoint notes
Accidentially forgot to remove these engineering notes during the original implementation work. They are not needed.

Milestone: patch
2025-08-06 11:32:26 -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 50121aa873 Added container model registration
Necessary to register the new model and contract for use by the endpoint.

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 8247ad5005 Fixed Zeitwerk loader
This cropped up due to Zeitwerk 2.7.3 which introduced a breaking change to the Object API.

Milestone: patch
2025-05-28 17:09:56 -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 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