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
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
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
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
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
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
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
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
Necessary to perform API request, parse the response, validate the response, and hydrate into a whole value object for further processing.
Milestone: minor