* Improve curseforge and local indexing
This should make curseforge indexing more efficient, and reuses
some of the normal local indexing for the queued indexing of
recently created mods.
* Unify impls for single and multiple routes for mods and versions
This uses the same backend for the single and multiple query
routes so that they no longer return inconsistent information.
* Cache valid curseforge mod ids to reduce request load
This caches the ids of minecraft mods and reuses them on indexing
to reduce the amount of unused addons that are returned.
* Add types to game_versions, allow filtering by version type
- Fixes an issue with version numbers in the initial mod indexing
queue
- Modifies the /api/v1/categories/game_versions route to take an
optional query parameter `type` to filter the listed game versions
- Creating tags is now idempotent
- Creating game_versions now requires a JSON body that specifies
the version type
* Implement automatic indexing of new Minecraft versions
It's currently set to run every 6 hours and isn't configurable; we
could add config for it, but it doesn't seem likely to be rate
limited or have issues with frequency.
* Support for using a master key
* Expand scope of PR, add wrapper struct, add files to intitial versions/mods
* Change changelog path, run formatter
* Split file changes into different PR
* Formatting, rename main variable
Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
* Lots of little fixes
* Change + Add TODOs back that were incomplete
* Fix migrations
* Run prepare
* Minor fixes
* Fix formatting
* SQLX Prepare
* Add status to creation query
* Change header name
* Add default bio value
* Remove default
* Make name null
* Run prepare
* Add new API Routes for requesting multiple of an item
* Run formatter
* Simplify get mods query
* Run prepare
* Refactor to use one query for most routes, change version create route to have mod_id in data
* More fixes
* Merged mod file upload in version creation, mod creation and
version file add to one function; This makes sure that they are
consistent
* Made some fields on `User` optional: `github_id`, `avatar_url`, `bio`.
* We may not want to publicly show the `github_id` to everyone
with access to the API
* If we allow non-github users, some of those fields would be
invalid; some oauth providers may not have avatars or bios
* Made CORS origins should configurable
* Made `--reconfigure-indices` and `--reset-indices` exit after
completion instead of starting the server
* Add more info to search route:
* Run formatter
* Allow for API user to change the amount of mods responded with in search
* Refactor SearchResults
* Fix searchresults usage
* feat: Implement more database methods & add mod and version routes
* feat: Implement deleting mods/versions & implement categories
* feat: Implement routes for categories, game versions & loaders
* feat: Reorganize API routes in a (hopefully) usable way
* Creation Stuff
* Make it work
* Response structs + Mod ID validation
* Run code formatter
* Push local changes
* Finish up version creation - fix comments, impl file creation
* fix: Add sqlx prepare data
Co-authored-by: Aeledfyr <aeledfyr@gmail.com>