+ Local api server is designed to allow local access to Geoffrey without a token
+ Uses a unix domain socket, allowing permissions to be handled by the OS
+ Started work on a tool to exploit this, geoffrey-cli
ci/woodpecker/push/woodpecker Pipeline was successfulDetails
+ info now trys to find the "best match"
+ report_out_of_stock no longer matches all items with the same sub string
+ Added type to loc strings in the bot
+ clippy + fmt
ci/woodpecker/push/woodpecker Pipeline was successfulDetails
+ Usedful for the impls to retrieve settings without having to redefine them in each project
+ Start of models api
+ Bunch of small tweaks
+ clippy + fmt
continuous-integration/woodpecker the build was successfulDetails
+ report_out_of_stock can be used by a when an item is not in stock in a shop
+ Added new query system
+ Impl for both LocationDB and Player for now
+ Goal is to increase code re-use without a million functions for different queries
+ Should be expanded to more models
+ I Should really just rip out the DB and make it a generic thing
+ Clippy + fmt
continuous-integration/woodpecker the build was successfulDetails
+ Allows a location's name or position to be updated
+ Added a bots commands for it, two for now as subcommands are not working right
+ Logging fix
+ Updated return messages for some bot commands
continuous-integration/woodpecker the build was successfulDetails
+ Link provides a link code that a user can use to link other accounts
+ This places the main auth source into MC and the plugin
+ Refactored register to accept a link code
+ Clippy + fmt
+ CommandRequest is now a struct that contains a generic parameter for the type
+ This streamlines adding new command parameters and reduces duplicate code
+ Added delete commands
+ Created CommandRunner struct to house all the bot commands
+ Streamlines registering app commands and dispatching commands
+ Bit of hecky rust that may need to be cleaned up
+ Clippy + Fmt
+ Model migration is handled in the DB modules
+ It involves writing an up and a down case
+ Both load and interact with the JSON directly
+ Done so it can be decoupled from models
+ Fixed long-standing issues with database tests. The DB is now guarded by a mutex to prevent tests running in parallel
+ Added .drone.yml to run tests on a PR and on a push
+ The `add_item` command adds items to a location of type `Shop`
+ `selling` allows items to be queried
+ Items are not sorted yet
+ The user will be able to apply optional sorting params
+ Allowed the `insert` function of the DB to be used to update a model already in the DB
+ Clippy + Fmt
+ Tokens can be added by the add_token command or via the CLI
+ Tokens are checked for authorization before a command is run
+ Added an error message field to the GeoffreyApiResponse
+ Made tokens strings instead of u64s
+ Tokens are randomly generated 64 char long alphanumeric strings
+ Clippy + Fmt
+ Refactored to make CommandRequest a trait that all the parameter structs implment
+ Created handle_command to handle all the preprocessing needed before running the command
+ Decoupled Database Types from API Return Types
+ Allows response to be more content rich
+ Added helper methods to load all the information related ot a model
+ This also helps us move a bit closer to what we would have to do for something like Diesel
+ Might be good to add more functions like this to decouple db operations from the API layer
+ Implemented register, find, and add_location
+ Bunch of changes to the DB and the Models to make this work
+ API models are defined in GeoffreyModels so things that call the API don't need to define their own types
+ Still needs a lot of work, and need to design the api a bit more
+ Clippy + fmt