The o!TR API should not be the program doing all of the API calls & automation checks. We want the API to be...an API. Not an API, data processor, and data sanitizer.
Steps
Documentation
[x] Thoroughly document all of the processes which will live in the new microservice.
[x] Document all of the states by which the new automation workflows will behave
[x] Document and rearchitect the relevant database tables (tournaments, matches, games, match_scores)
Code changes (API)
[x] Rewrite & redocument all of the VerificationStatus enums
[x] Rewrite & redocument all of the RejectionReason enums
[x] Add new ProcessingStatus enums for Match and Tournament
[ ] Incorporate new RejectionReason and VerificationStatus fields to entities that need them.
[ ] Rewrite Tournament submission flow (intention to verify)
[ ] Add Tournament submission flow (intention to deny)
Code migration
[x] Create new .NET project for database-related classes.
[x] Migrate all repositories and repository interfaces to the new database project.
[x] Create new .NET project under the same solution for the data worker. This will be a .NET console app that runs until killed. Reference the 'Database' project
Migrate data processing to microservice
The o!TR API should not be the program doing all of the API calls & automation checks. We want the API to be...an API. Not an API, data processor, and data sanitizer.
Steps
Documentation
Code changes (API)
VerificationStatus
enumsRejectionReason
enumsProcessingStatus
enums forMatch
andTournament
RejectionReason
andVerificationStatus
fields to entities that need them.Tournament
submission flow (intention to verify)Tournament
submission flow (intention to deny)Code migration
NeedsData
flowNeedsAutomationChecks (Match)
flowNeedsAutomationChecks (Tournament)
flowPlayer
data fetch flowTests
NeedsData
flowNeedsAutomationChecks (Match)
flowNeedsAutomationChecks (Tournament)
flowPlayer
data fetch flowAPI Cleanup
example.appsettings.json
file (and the actions secrets, config classes, etc)OsuPlayerDataWorker
OsuMatchDataWorker
MatchDuplicateDataWorker
OsutrackApiWorker
AutomationChecksUtils
MatchAutomationChecks
GameAutomationChecks
AutomationChecksTests