Commit Graph
29 Commits
Author SHA1 Message Date
fsylvain aa865af2e9 refac: reamaining auth surface rewrite, T0 2026-09-24 05:11:49 +02:00
fsylvain 6d510d2805 refac: register only open while no verified acc exists, enforced by a use case rather than handler & sends verification email whose link uses the conf pub URL whose code expires after 2h 2026-09-24 03:36:37 +02:00
fsylvain 6e9e108033 refac: several unverified users can exist at once: an empty reset or verification code is stored as no value so it doesn't break the unique constraint, and deleting a user removes the row so the same username and email can register again 2026-09-24 01:59:24 +02:00
fsylvain 0b4e614ec9 refac: runtime settings are read once at startup and passed in through the composition root; no handler, router or repository reads environment variables 2026-09-24 01:30:00 +02:00
fsylvain e474f03d91 refac: authenticated user can upload an image to an existing article and receives its public location; an unknown article returns 404 and a disallowed type returns 400 2026-09-24 00:33:26 +02:00
fsylvain 5992c8598b refac: allowed image types and the size limit are a domain rule checked by the use case, not by the persistence layer 2026-09-24 00:03:29 +02:00
fsylvain 8a8a24434a refac: deleting an article also deletes its images, and deleting a missing article returns 404 2026-09-23 23:42:18 +02:00
fsylvain c16fdbd26d refac: authenticated user can edit an article's body; an unknown id returns 404 2026-09-23 23:24:03 +02:00
fsylvain 8822bdddd0 refac: authenticated user can publish and unpublish an article; an unknown id returns 404 2026-09-23 22:54:44 +02:00
fsylvain 790d4e6da6 refac: authenticated user can list all articles, including offline ones, while the public list only shows online ones 2026-09-23 22:36:41 +02:00
fsylvain 6a2ca07b66 refac: repository updates, image attachment and deletes report the domain not-found error for an unknown id, the same for articles, users and images, and the test fakes stop returning GORM errors 2026-09-23 22:09:06 +02:00
fsylvain 4278d96882 refac: article title rules are the same in the API request and the domain; an invalid title returns 400 instead of 500 2026-09-23 20:04:09 +02:00
fsylvain ff8cd5f0ec refac: password and code hashing & checking go through a domain hasher interface used by the use cases instead of bcrypt in the user repository and the auth handler 2026-09-23 19:29:20 +02:00
fsylvain 8460a078e3 refac: missing user or article is reported with a domain not-found error instead of a raw GORM error, and the API answers 404 for it 2026-09-23 18:55:05 +02:00
fsylvain 7c57173497 feat: characterized the existing use cases as a baseline; every repo fake behaves like the real ones and can be told to fail, every use case is covered; gremlins runs clean on useCases 2026-09-23 18:21:46 +02:00
Floriansylvain 9c80cb9885 feat: unit testing mocked repos / domain 2025-12-22 02:49:57 +01:00
Florian Sylvain b470bfcc67 refac: renamed 'post' -> 'article' 2025-11-17 19:27:48 +01:00
Florian Sylvain a77a5ad314 refac: fixed, better, smarter, correct dependency injection 2025-03-29 00:51:01 +01:00
Florian Sylvain 4d6054e22b refac: separated api content into sub-packages & renamed usecases 2025-03-13 19:43:12 +01:00
Florian Sylvain 7d2795a9e0 feat: post deletion 2024-05-19 17:12:48 +02:00
Florian Sylvain 29fce9a241 brand: GohCMS -> GoCMS, project-wide 2024-05-15 19:34:38 +02:00
Florian Sylvain 00a4e464ff clean: refactor auth & login page auth 2024-05-13 11:11:58 +02:00
Florian Sylvain e113c79a6d fix: all remaining "article" replaced by "post"
All instances of the term "article" were replaced with "post" in variable names, type names, function names, etc. This was primarily to ensure consistent naming and reduce confusion going forward. The term "post" was chosen as it's a more commonly used term for the involved operations in the context of content management and blogging platforms. All tests were also updated to reflect these changes.
2023-09-06 03:38:52 +02:00
Florian Sylvain 554fdc1989 clean: Article to Post in domain and related use cases
Renamed the 'Article' domain to 'Post' in order to better reflect the purpose and utility of the object. The change involved renaming all related use cases, classes, and other references from 'Article' to 'Post' and updating all functions and data types to work with Posts instead of Articles.
2023-09-06 01:56:27 +02:00
Florian Sylvain 60e25cea2f fix: set "DB_FILE" environment variable in tests
This commit adds a line to set the "DB_FILE" environment variable in tests. This ensures that tests are always using "test.db" for database related operations, aligning testing environment accurately which guarantees consistent results.
2023-08-13 21:41:04 +02:00
Florian Sylvain 64ecbc6995 clean: removed ignored err var declaration 2023-08-13 03:21:47 +02:00
Florian Sylvain e575062209 clean: removed too deeply nested tests 2023-08-12 20:52:32 +02:00
Florian Sylvain 542bcded3e fix: panic on test.db rm err 2023-08-12 02:39:42 +02:00
Florian Sylvain 46daadb8e4 feat: tests (article) 2023-08-12 02:33:40 +02:00