Commit Graph

179 Commits

Author SHA1 Message Date
Krzysztof Sikorski cf98bb3c66
Update requirements to PHP 8.2 2023-03-18 15:01:39 +01:00
Krzysztof Sikorski d92b471239
Update dependencies (Composer & NPM) 2023-03-18 14:07:49 +01:00
Krzysztof Sikorski 4d269f8fb0
Fix sorting and encoding bugs in leaderboards export command 2022-05-14 00:29:18 +02:00
Krzysztof Sikorski 59d2500271
Set default order in `Leaderboard->entries` Doctrine collection 2022-05-13 22:40:48 +02:00
Krzysztof Sikorski e74098c1a2
Quick and dirty command to export leaderboards in BBCode text format 2022-05-13 01:43:02 +02:00
Krzysztof Sikorski 1b48d21e9f
Update about page with info about contribution, remove submit form from menu 2022-04-28 02:46:54 +02:00
Krzysztof Sikorski 4ee90caaec
Add list of repository mirrors to README, update twin list on about page 2022-04-28 02:25:16 +02:00
Krzysztof Sikorski e6009d48b6
Update CHANGELOG for version 1.0.0 2022-04-26 01:23:09 +02:00
Krzysztof Sikorski 3909314bde
Create "About" page, update main menu 2022-04-26 01:20:35 +02:00
Krzysztof Sikorski 1bbb8b5ebe
Code style: rename `MainMenuService` to `MainMenuGenerator` 2022-04-26 01:19:09 +02:00
Krzysztof Sikorski c6fba257cb
Code style: group routes by user visibility 2022-04-26 00:11:22 +02:00
Krzysztof Sikorski 0ef7fcd709
Add CSS styles for the leaderboard page 2022-04-26 00:03:54 +02:00
Krzysztof Sikorski f9d60a7d89
Implement page for browsing leaderboards 2022-04-25 23:54:56 +02:00
Krzysztof Sikorski 9fc7564f28
Extend Leaderboard entity with backward relation to LeaderboardEntry entity 2022-04-25 23:52:36 +02:00
Krzysztof Sikorski 8220fdc893
Insert rows for known game periods (up to B5 Stronghold launch) 2022-04-25 21:43:00 +02:00
Krzysztof Sikorski 8e511dc990
Extract main menu to a service class 2022-04-25 20:37:36 +02:00
Krzysztof Sikorski 13797d361d
Design basic layout & styling, generate production stylesheet 2022-04-25 20:33:27 +02:00
Krzysztof Sikorski 544672c443
Add Tailwind CSS to the project, configure it, create build scripts in `bin` 2022-04-25 09:10:45 +02:00
Krzysztof Sikorski 96a9e33404
Shorten display of IDs in worker logs 2022-04-25 09:09:28 +02:00
Krzysztof Sikorski 1c1d5f418d
Fix score parsing in `BreathFourthParser`, remove forgotten dummy code 2022-04-25 08:45:16 +02:00
Krzysztof Sikorski 11c3dc8f49
Code style: move all admin-related classes to dedicated namespace 2022-04-25 06:33:16 +02:00
Krzysztof Sikorski 03aa8ce59d
Document worker commands in README file 2022-04-25 03:08:34 +02:00
Krzysztof Sikorski e5a11c4f68
Code cleanup: remove unused docker compose config files 2022-04-25 03:05:17 +02:00
Krzysztof Sikorski dad9cce358
Code cleanup: remove traces of Symfony flux from `.gitignore` file 2022-04-25 03:04:35 +02:00
Krzysztof Sikorski 83e25ffedb
Implement parser for Breath 4 leaderboards 2022-04-24 23:05:30 +02:00
Krzysztof Sikorski 8ed57e5104
Add Symfony DomCrawler and Symfony CssSelector to dependencies 2022-04-24 23:02:25 +02:00
Krzysztof Sikorski 4720991c8a
Log parser errors via standard logger service 2022-04-24 22:55:18 +02:00
Krzysztof Sikorski 9aec5ba2c7
Redesign parser error handling, update ParserResult and PageView appropriately 2022-04-24 21:57:03 +02:00
Krzysztof Sikorski 1166cad011
Implement generic parser command to handle stored page views 2022-04-22 01:05:42 +02:00
Krzysztof Sikorski eeef06f6d9
Configure service container to support parsers and ParserSelector 2022-04-22 01:02:59 +02:00
Krzysztof Sikorski 5a2c7eea97
Implement minimal `ParserResultProcessor` that can persists leaderboards 2022-04-22 00:57:18 +02:00
Krzysztof Sikorski 3a52a466f3
Define parser contract, implement ParserSelector and ParserResult 2022-04-22 00:47:19 +02:00
Krzysztof Sikorski 73805a2206
Rewrite `EntryList` class to fix bugs and increase readability 2022-04-22 00:21:03 +02:00
Krzysztof Sikorski 05fa4a6bb6
Fix structure of leaderboard tables to match leaderboard DTOs 2022-04-21 22:23:28 +02:00
Krzysztof Sikorski 6cc6038dad
Explicitly set default timezone to UTC 2022-04-21 02:30:45 +02:00
Krzysztof Sikorski ebab7b0652
Extend prune command to also prune page views marked as succesfully parsed 2022-04-21 00:50:46 +02:00
Krzysztof Sikorski fc5fbb0ccb
Redesign and refactor handling of page view submission 2022-04-21 00:21:35 +02:00
Krzysztof Sikorski a733008cb4
Decorate serializer service to avoid having to always pass context array 2022-04-20 21:11:49 +02:00
Krzysztof Sikorski 93a5ab6b4f
Explicitly configure Serializer instead of relying on `JsonSerialize` interface 2022-04-20 04:18:51 +02:00
Krzysztof Sikorski 610a82e397
Code style: normalize use of timestamps
Details:
- always use `DateTimeInterface` in type declarations
- always clone arguments in setters
2022-04-19 23:16:49 +02:00
Krzysztof Sikorski a645355ff3
Split and merge `UserAccessTokenManager` service into other services
Details:

- extracted`UserAccessTokenManager.generateValue` method into separate service
- merge the other methods into `UserAccessTokenRepository` service
2022-04-19 03:05:15 +02:00
Krzysztof Sikorski 4d56254eaf
Merge `UserManager` and `UserRepository` services 2022-04-19 02:50:07 +02:00
Krzysztof Sikorski 5b2ae8bffa
Refactor autogenerated Doctrine repositories into custom services
Repository classes generated by Symfony Maker are just useless boilerplate,
all the provided "magic" methods can be easily reproduced with just a few lines
of code, so I do not see any value in using them.

This patch removes almost all "magic" repositories that I have generated so far,
replacing them with plain old service classes, implemented by composition
instead of inheritance.

The only exception is `UserRepository` that is hooked too much to Symfony
Security component and because of that it had to be split into two identically
named classes - the old one was stripped to contain only the methods required
by Symfony, while all the other methods have been moved into a service class.
2022-04-19 02:35:19 +02:00
Krzysztof Sikorski 965a66d448
Rename "nexus raw data" to "page view", mark unused fields as nullable
Details:
- rename `nexus_raw_data` table to `page_view`
- rename `NexusRawData` entity to `PageView`
- approprietly rename repository class, method arguments, and local variables
- mark `requestStartedAt` and `responseCompletedAt` fields as nullable
- rename `submitter` property to `owner` to match `UserAccessToken` entity
2022-04-19 00:44:06 +02:00
Krzysztof Sikorski dd4ee4579a
Redesign leaderboard entities to support game periods and better match DTOs 2022-04-18 03:39:10 +02:00
Krzysztof Sikorski 579d2047d8
Code style: fix indentation in doctrine migration 0001 2022-04-18 01:13:00 +02:00
Krzysztof Sikorski 78105244d9
Create Doctrine entity for storing date periods (Breaths etc) 2022-04-18 01:00:38 +02:00
Krzysztof Sikorski 71a52739c6
Remove Symfony Maker bundle because it does not work with modified config 2022-04-17 22:43:55 +02:00
Krzysztof Sikorski 3d838d175e
Make sure that stored timestamps are always in UTC time zone 2022-04-17 22:24:43 +02:00
Krzysztof Sikorski 2280822ab4
Refactor: split `BaseEntity` abstract class into a set of traits 2022-04-17 20:39:54 +02:00