- Change response view from :nested/:full to :uncap for update_uncap_level
- Add default value of 0 for transcendence_step when not provided
- Fix max_uncap_level method call in GridSummonsController
- PUT /parties/:party_id/grid_summons/:id/position
- POST /parties/:party_id/grid_summons/swap
- Restrict main and friend summon positions
- Validate sub/subaura slot transitions
* Install Rspec
* Create .aidigestignore
* Update rails_helper
- Added sections and comments
- Add support for loading via canonical.rb
- Add FactoryBot syntax methods
- Disable SQL logging in test environment
* Move gems around
* Add canonical.rb and test env CSVs
We load these CSVs via canonical.rb when we run tests as a data source for canonical objects.
* Remove RBS for now
This is too much and we need to find the right solution
* Refactor GridSummonsController and add tests
* Create GridSummon factory
* Refactor GridSummon and add documentation and tests
* Create have_error_on.rb
* Update .aidigestignore
* Fix warnings
* Add GridWeapons and Parties factories
* Refactor GridWeapon and add documentation and tests
* Create .rubocop.yml
* Create no_weapon_provided_error.rb
* Refactor GridWeaponsController
- Refactors controller
- Adds YARD documentation
- Adds Rspec tests
* Refactor GridSummonsController
- Refactors controller
- Adds YARD documentation
- Adds Rspec tests
* Enable shoulda/matchers
* Update User factory
* Update party.rb
We moved updating the party's element and extra flag to inside the party. We use an after_commit hook to minimize the amount of queries we're running to do this.
* Update party.rb
We change setting the edit key to use the conditional assignment operator so that it doesn't get overridden when we're running tests. This shouldn't have an effect in production.
* Update api_controller.rb
Change render_unprocessable_entity_response to render the errors hash instead of the exception so that we get more helpful errors.
* Add new errors
Added NoCharacterProvidedError and NoSummonProvidedError
* Add tests and docs to GridCharacter
We added a factory, spec and documentation to the GridCharacter model
* Ensure numericality
* Move enums into GranblueEnums
We don't use these yet, but it gives us a structured place to pull them from.
* Refactor GridCharactersController
- Refactors controller
- Adds YARD documentation
- Adds Rspec tests
* Add debug hook and other small changes
* Update grid_characters_controller.rb
Removes logs
* Update .gitignore
* Update .aidigestignore
* Refactored PartiesController
- Split PartiesController into three concerns
- Implemented testing for PartiesController and two concerns
- Implemented fixes across other files to ensure PartiesController tests pass
- Added Favorites factory
* Implement SimpleCov
* Refactor Party model
- Refactors Party model
- Adds tests
- Adds documentation
* Update granblue_enums.rb
Remove included block
Manually setting summon transcendence was not working due to a change that passed in the canonical object instead of the grid object to `max_uncap_level`
* Fix favorites page by fixing how query is built
* Set uncap level when GridSummon is created
If you don't, then NULL entries get sent to the database from the bookmarklet.
* Remove ap call
* Fix remix render method
* Downcase username on db end
There was a bug where users with capital letters in their name could not access their profiles after we tried to make things case insensitive.
* Remove ap call and unused code
* Add granblue.team to cors
This works now!
* Implement all-entity search to support tagging objects (#117)
* Add table for multisearch
* Add new route for searching all entities
* Make models multisearchable
We're going to start with Character, Summon, Weapon and Jobs
* Add method to Search controller
This will search with trigram first, and then if there aren't enough results, search with prefixed text search
* Add support for Japanese all-entity search
* Update grid_summons_controller.rb
Set the proper uncap level for transcended summons
* Remove print statements from data migration
* (Hotfix) Fix data migration failing due to nil
* Fix stale migration errors
* Ensure new characters have Awakenings
Every character starts with Balanced Lv1 awakening
* Ensure weapons without awakenings do not expose key
* Updates database seeds (#109)
* Destroy favorites when a party is deleted
* Allow users to delete parties with remixes (#111)
There was a bug that prevented users from deleting parties with remixes, because the source party reference was not being nulled.
We fixed that with `dependent: :nullify` but also added a boolean key to the parties database to track if a party is a remix or not. This way, if a party is flagged as a remix but the source party is null, we know that the original party was deleted and can message this on the frontend.
* Fix deleting grid summons (#112)
A bad decision to try to reduce code in `set` made this fail with a 422 because `summon_params` was being tested against but... didn't exist? was nil?
I fixed it by not using `set` before calling `destroy`, and just finding the summon in the `destroy` method itself
* Usernames in URLs should not be case-sensitive (#113)
Amateur hour mistake
* Change default filters in users controller
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add tables used for Siero's revival (#94)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Deploy unauthenticated profile fix (#93)
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add guidebooks migration
* Implement business logic for reading Guidebooks
* Change to individual guidebook columns
* Properly output guidebook description
* Move to 1-index guidebooks
* Update party-related files for 1-index guidebooks
* Add tables for Siero
* Update download and export scripts
* Support for Siero, raids rework and edit party rework (#96)
* Add guidebooks migration
* Implement business logic for reading Guidebooks
* Change to individual guidebook columns
* Properly output guidebook description
* Move to 1-index guidebooks
* Update party-related files for 1-index guidebooks
* Add tables for Siero
* Add raid groups table
* Update raid model
To belong to the RaidGroup class
* Update job class
To have many job skills
* Add endpoint for raid groups
* Update Raid blueprint with views
* Added down for creating table
* Add guidebooks flag and auto summon flag
* Guidebooks → RaidGroup
* Auto summon → Party
* Add views to Raid blueprint
* Add views and guidebook flag to RaidGroup blueprint
* Add auto summon and Raid view to Party blueprint
* Add quick summons (#97)
* Adds quick summon migration
* Add route to update quick summon
* Add logic to update quick summon
* Remove ap call
* Add logic to updating summon uncap
You couldn't actually update summon transcendence on staging, maybe due to a bug?
Now you can. And it won't let you update outside of the bounds of what is defined on the canonical object.
* Fix summon logic
Updated logic for updating summon uncap and transcendence levels and quick summon status.
* Fix searching in Japanese (#99)
This was broken because we were using the browser-provided locale as a prefix to our method, but that is 'ja' and our methods were prefixed with 'jp'.
* Fix display of base skills (#100)
Base skills were not displaying due to a missing case in our search code. This is now fixed.
* Update awakenings (#101)
* Deploy unauthenticated profile fix (#93)
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add tables used for Siero's revival (#94)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Deploy unauthenticated profile fix (#93)
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add guidebooks migration
* Implement business logic for reading Guidebooks
* Change to individual guidebook columns
* Properly output guidebook description
* Move to 1-index guidebooks
* Update party-related files for 1-index guidebooks
* Add tables for Siero
* Adds guidebooks and gacha tables (#95)
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add tables used for Siero's revival (#94)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Deploy unauthenticated profile fix (#93)
* Implements advanced filters (#90)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix a bug where unauthenticated users couldn't view profiles (#92)
* Implements advanced filters (#90) (#91)
* Add advanced filters
Adds new filters to search:
* Full auto
* Charge attack
* Auto guard
* Number of weapons (user-selectable now)
* Number of summons
* Number of characters
* Maximum number of turns
* Maximum number of buttons
* Maximum clear time
* User quality (No anonymous users)
* Name quality (No untitled teams)
* Remixes (Only show original teams)
* Update advanced filter params
* Add default to party counter cache
* Fix being unable to see profiles when unauth
* Add guidebooks migration
* Implement business logic for reading Guidebooks
* Change to individual guidebook columns
* Properly output guidebook description
* Move to 1-index guidebooks
* Update party-related files for 1-index guidebooks
* Add tables for Siero
* Update download and export scripts
* Support for Siero, raids rework and edit party rework (#96)
* Add guidebooks migration
* Implement business logic for reading Guidebooks
* Change to individual guidebook columns
* Properly output guidebook description
* Move to 1-index guidebooks
* Update party-related files for 1-index guidebooks
* Add tables for Siero
* Add raid groups table
* Update raid model
To belong to the RaidGroup class
* Update job class
To have many job skills
* Add endpoint for raid groups
* Update Raid blueprint with views
* Added down for creating table
* Add guidebooks flag and auto summon flag
* Guidebooks → RaidGroup
* Auto summon → Party
* Add views to Raid blueprint
* Add views and guidebook flag to RaidGroup blueprint
* Add auto summon and Raid view to Party blueprint
* Remove ap call
* Add quick summons (#97)
* Adds quick summon migration
* Add route to update quick summon
* Add logic to update quick summon
* Add logic to updating summon uncap
You couldn't actually update summon transcendence on staging, maybe due to a bug?
Now you can. And it won't let you update outside of the bounds of what is defined on the canonical object.
* Fix summon logic
Updated logic for updating summon uncap and transcendence levels and quick summon status.
* Fix searching in Japanese (#99)
This was broken because we were using the browser-provided locale as a prefix to our method, but that is 'ja' and our methods were prefixed with 'jp'.
* Fix display of base skills (#100)
Base skills were not displaying due to a missing case in our search code. This is now fixed.
* Squash migrations into one file
* Add migrations
This adds migrations and data migrations for the awakening update.
* A new `Awakenings` table now exists that stores all possible awakenings, with a column for object type.
* GridCharacter and GridWeapon now have `awakening_id` and `awakening_level` fields. Their `awakening` and `awakening_type` fields were removed.
* Weapons have a mapping table, `WeaponAwakenings`, as not all weapons can be awakened.
* Data migrations are included to migrate existing user data. They should be run automatically when the migration is run with `rails db:migrate:with_data`
* Add and update models
This updates models for the awakening update.
* Awakening and WeaponAwakening models were added
* Weapon, GridWeapon and GridCharacter models get relationships to the new models defined
* GridCharacter had a validation on `awakening_level` that needed to be fixed
* Update controllers
This updates the GridCharacters and GridWeapons controllers to accept the new fields `awakening_id` and `awakening_level` from clients
* Update blueprints
This updates the blueprints to match the new schema. The new AwakeningBlueprint was accidentally added already, oops.
* Remove re-added migrations
* Implement removing job skills (#103)
This lets users remove job skills, for if they accidentally set them.
* Fix migration