Commit Graph
91 Commits
Author SHA1 Message Date
Kharec 2f78370d43 feat: GetVoteCountsByPostID: use a single sql query to returns up votes and down votes counts 2025-11-21 16:47:52 +01:00
Kharec 39598a166d feat: remove redundat getbyemail call to reduce db query by 2 (1Q/user creation instead of 2) 2025-11-21 16:43:46 +01:00
Kharec fa9474d863 revert: db transaction use, avoiding the pgx RETURNING issue while maintaining data consistency 2025-11-21 16:31:06 +01:00
Kharec 34a97994b3 feat: improve testing to use production code paths and better coverage 2025-11-21 16:26:21 +01:00
Kharec eb5f93ffd0 clean: remove duplicate sequential helpers 2025-11-21 16:25:27 +01:00
Kharec 697f201d60 feat: use database transactions to ensure atomicity 2025-11-21 16:21:04 +01:00
Kharec f4ab8bda45 feat: transaction rollback test 2025-11-21 16:20:41 +01:00
Kharec 65576cc623 feat: keep seeding fast and predictable even when parallelized 2025-11-21 16:16:35 +01:00
Kharec a5b4e9bf25 feat: update tests to pass precomputed hashes 2025-11-21 16:11:42 +01:00
Kharec c020517ccf feat: reduce hashing cost by removing redundant password hashing 2025-11-21 16:11:33 +01:00
Kharec 4cdda3f944 feat: remove bcrypt and use a precompute hash 2025-11-21 16:11:08 +01:00
Kharec ff471cd5dd fix: loop 2025-11-21 15:39:08 +01:00
Kharec df5e67c7f3 feat: add idempotency tests 2025-11-21 15:34:08 +01:00
Kharec b2580d2380 feat: make seeding idempotente 2025-11-21 15:33:59 +01:00
Kharec 4749213bf0 feat: update test to accept randomized seed user identities 2025-11-21 15:26:29 +01:00
Kharec 6470425b96 feat: avoid unique constraint failures on repeat runs by randomizing seed identities 2025-11-21 15:26:05 +01:00
Kharec 14ae6f815b feat: update tests to verify clamping 2025-11-21 15:21:05 +01:00
Kharec 73083e4188 feat: check zero/negative value in seeding 2025-11-21 15:20:57 +01:00
Kharec c907c4812b feat: add tests covering negative values for the three flags 2025-11-21 14:56:09 +01:00
Kharec c7f30070c0 feat: reject negative/nonsensical flag values with a clear error instead of letting slice/channel allocations panic 2025-11-21 14:55:51 +01:00
Kharec 0dcd5fec51 fix: Makefile fuzz target to enumerate fuzz functions per package and run each individually 2025-11-21 14:30:37 +01:00
Kharec 96c054aa99 feat: add new parameter 2025-11-21 13:13:27 +01:00
Kharec bdd7766275 docs: update readme 2025-11-21 13:13:18 +01:00
Kharec 0b1241d371 docs: update readme 2025-11-21 13:11:47 +01:00
Kharec b300fc2f5e feat: new test for json output flag from config 2025-11-21 13:11:43 +01:00
Kharec f49bea4138 feat(config): read a flag in .env to set or not json output 2025-11-21 13:11:16 +01:00
Kharec 79e072fe6b feat(cli): read .env value to set or not the json output 2025-11-21 13:10:53 +01:00
Kharec 7fca1f78dc feat(cli): add a json output and tests 2025-11-21 13:00:03 +01:00
Kharec 30a2e88685 docs: update readme 2025-11-20 18:55:08 +01:00
Kharec 10f7220fb6 feat: install pg 18 2025-11-20 18:55:05 +01:00
Kharec 08a934e388 feat: migrate to postgres 18 2025-11-20 18:54:58 +01:00
Kharec 87dadfa4a8 feat: modernize loops 2025-11-19 13:13:51 +01:00
Kharec 53c76eee8b feat: modernize loop 2025-11-17 16:24:40 +01:00
Kharec 446915d5ee feat: modernize loop 2025-11-17 15:59:24 +01:00
Kharec dceb305ac7 feat: modernize statement using max() 2025-11-17 15:37:03 +01:00
Kharec e5b1f18beb docs: update readme regarding our new linting configuration 2025-11-15 11:45:54 +01:00
Kharec 513e0c05b2 feat: creating my own hell by adding a suitable configuration for golangci-lint 2025-11-15 11:45:42 +01:00
Kharec ba09bb4141 lint: fix staticcheck nil pointer issue 2025-11-15 11:35:31 +01:00
Kharec 0f9a89bfc7 lint: add error checks on Register() and fix sqlDB.Close() errcheck 2025-11-15 11:34:57 +01:00
Kharec 1d1a3dcf60 lint: make linter happy with errcheck 2025-11-15 11:34:12 +01:00
Kharec 2b31e80fa1 docs: not necessarily tailwind tbh 2025-11-15 11:22:41 +01:00
Kharec 6a513bbcac refactor: simplify return in ValidateFuzzInputStrict() 2025-11-14 07:16:54 +01:00
Kharec 69e61c5811 feat: use SplitSeq 2025-11-14 07:16:20 +01:00
Kharec 9dfef1d67f refactor: replace if/else chain with switch statement 2025-11-14 06:59:47 +01:00
Kharec e171776055 refactor: replace if/else chain with switch statement 2025-11-14 06:59:18 +01:00
Kharec 1f703fb8c0 clean: remove dead code and now unused functions and types 2025-11-14 06:58:05 +01:00
Kharec ba17fa1b5a clean: remove now unused helpers 2025-11-14 06:50:14 +01:00
Kharec 8b01f79c8e fix: use .Pointer 2025-11-13 19:33:07 +01:00
Kharec 34b7c509ec feat: use createUserWithCleanup for automatic test cleanup 2025-11-13 08:17:27 +01:00
Kharec 32eeb76ee9 fix: check for empty header in assertHeader() 2025-11-13 08:17:11 +01:00
Kharec b2d255cc0d refactor: use assertCookie and createUserWithCleanup helpers 2025-11-13 08:16:06 +01:00
Kharec ff73d2919d refactor: use assertHeader and createUserWithCleanup helpers 2025-11-13 08:15:56 +01:00
Kharec 5725cf21ce refactor: use assertHeader helper for Retry-After check 2025-11-13 08:15:35 +01:00
Kharec ac81ce66ff refactor: use assertCookie helper for auth token check 2025-11-13 08:15:21 +01:00
Kharec aeee85934c refactor: use createUserWithCleanup for automatic test cleanup 2025-11-13 08:15:07 +01:00
Kharec 6b63cacf14 refactor: use assertHeaderContains helper for compression header checks 2025-11-13 08:14:45 +01:00
Kharec 006609545c refactor: use newRouterConfigBuilder() 2025-11-13 08:07:11 +01:00
Kharec 2755f727f2 feat: create routerConfigBuilder along with a builder function 2025-11-13 08:06:57 +01:00
Kharec 4faf16c84b refactor: use switch on vote.Type 2025-11-13 08:02:52 +01:00
Kharec 028bde4737 refactor: extract common setup logic 2025-11-13 08:02:45 +01:00
Kharec a435e55776 refactor: simplify fuzz tests to use package-based discovery 2025-11-12 07:09:07 +01:00
Kharec b9d59cef4e tests: combining the fuzz case lists into a single variable 2025-11-12 07:04:26 +01:00
Kharec ded77dd8cc build: declare targets directly 2025-11-12 07:02:52 +01:00
Kharec 221f828860 clean: remove obsoletes tests 2025-11-11 16:19:26 +01:00
Kharec c2d4357262 feat: keep only one method to get title of a page 2025-11-11 16:19:09 +01:00
Kharec 325cbe9c2c refactor: validateURLForSSRF() 2025-11-11 16:10:20 +01:00
Kharec 0026d0d645 feat: update example env 2025-11-11 04:46:13 +01:00
Kharec 2ef6494a90 feat: double default RateLimit values 2025-11-11 04:46:05 +01:00
Kharec 413cf51f74 fix: update obsolete repository link 2025-11-11 04:32:25 +01:00
Kharec 6426419b8b tests: add an unit test for APIHandler MountRoutes() 2025-11-11 04:26:33 +01:00
Kharec 7518896cfe feat: make APIHandler consistent with other handlers 2025-11-11 04:20:59 +01:00
Kharec 408b0000c8 feat: mount /api in API handler 2025-11-11 04:20:03 +01:00
Kharec ab4da45de2 docs: providing further details on rate limiting in env 2025-11-11 04:12:04 +01:00
Kharec d1bcc83093 fix: remove remnants 2025-11-10 22:13:38 +01:00
Kharec c7cb67a636 fix: take todo out of versionning 2025-11-10 22:12:48 +01:00
Kharec f19a648821 docs: update readme 2025-11-10 22:11:00 +01:00
Kharec 00b306afc9 docs: update readme with screenshots 2025-11-10 22:09:09 +01:00
Kharec dbd3a2e85f feat: add app screenshots 2025-11-10 22:06:57 +01:00
Kharec 0372845345 docs: add readme.md 2025-11-10 22:06:48 +01:00
Kharec a170085b89 feat: update swagger using script 2025-11-10 21:44:48 +01:00
Kharec 78989eb9f8 fix: update route in swagger annotations 2025-11-10 21:44:33 +01:00
Kharec 22d5773c7c fix: add missing swagger annotation for /api, /health and /metrics 2025-11-10 21:43:53 +01:00
Kharec 1338447524 remove: empty field 2025-11-10 19:16:32 +01:00
Kharec 1f08fc4fd9 fix: closure 2025-11-10 19:16:08 +01:00
Kharec e79adca357 fix: typo in readme 2025-11-10 19:14:50 +01:00
Kharec ed915fb98d obsolete: coverage tool 2025-11-10 19:13:20 +01:00
Kharec a2b194b4a2 git: add ignore 2025-11-10 19:12:51 +01:00
Kharec 64f52e627c feat: add .env.example 2025-11-10 19:12:46 +01:00
Kharec 1f994bec36 feat: add postgres install helper 2025-11-10 19:12:40 +01:00
Kharec 71a031342b To gitea and beyond, let's go(-yco) 2025-11-10 19:12:09 +01:00
Kharec 8f6133392d docs: add license 2025-11-08 13:41:51 +01:00