Commit graph

60 commits

Author SHA1 Message Date
fa86b9c4e6
feat(security): implement security bounded context entities, value objects, ports, use cases and unit tests 2026-08-18 12:03:25 +02:00
909f7abaa4
feat(shared): add security interfaces, user details contracts and UUID helper 2026-08-18 12:03:22 +02:00
5c10d51fba
feat(infra): add in-memory directory and repository doubles with unit tests and refactor usecase tests to pure black-box 2026-08-18 11:54:47 +02:00
1dcf0a8cdf
refactor(usecase): specify concrete Input and Output types in usecase docblocks and refine builder generic inference 2026-08-18 11:34:30 +02:00
1fdf7ea9cc refactor(application): move usecases under Application\Arcadia\Usecase and NotFoundException to Application\Shared\Exceptions 2026-08-17 11:18:53 +02:00
fc368cdc46 refactor(shared): reorganize DDD core building blocks into sub-namespaces (Model, Port, Event) 2026-08-17 10:31:28 +02:00
8ce012d7f7
refactor(models): update Carbon references to Illuminate\Support\Carbon
Updated property type hints in Employee, IncoCompo, and IncoSheet models to use Illuminate\Support\Carbon for consistency.
2026-08-17 09:49:52 +02:00
e02f5f5c2a
refactor: introduce InvalidDateFormatException for DatesHelper 2026-08-17 09:43:34 +02:00
3d4302b49c
refactor: adopt PHP 8.4 array_any for filter invariants 2026-08-17 09:42:39 +02:00
59ceab8185
refactor: clean up redundant readonly property modifiers and harmonize EntityId constructors 2026-08-17 09:42:21 +02:00
0c25d663f8
refactor: add explicit types to class constants (PHP 8.3+) 2026-08-17 09:41:10 +02:00
13091c4ec6
build: require php ^8.5 and remove league/uri dependency 2026-08-17 09:32:49 +02:00
ac552a4530
refactor: adopt native PHP 8.5 \Uri\Rfc3986\Uri for request URIs and pagination links 2026-08-17 09:30:21 +02:00
0a1d56fc69
feat(middlewares): add EnsureApiV1AcceptsJson and SetApiV1Etag middlewares
Introduce new middlewares to enforce JSON acceptance and manage ETag headers for API responses.
2026-08-14 16:47:52 +02:00
8f82f86966
refactor(application): unify filter and sorter VOs between Application and Domain layers 2026-08-14 16:28:44 +02:00
bfe0b0010c
feat(IncoSheets): introduce IncoShortSheet entity and IncoShortSheetDirectory with SQL select optimization and search pagination 2026-08-14 16:15:49 +02:00
cce81c1a85
style: apply code formatting and docblock fixes 2026-08-14 16:01:34 +02:00
afdde63d9f
feat(IncoSheets): support short parameter in FindAll and Search usecases 2026-08-14 16:01:31 +02:00
91114cb67b
feat(inco-compositions): add IncoCompositionShow feature
- Implemented IncoCompositionShowController to handle requests for inco composition details.
- Created IncoCompositionDto for response data structure.
- Added IncoCompositionShowRequest for request validation.
- Developed IncoCompositionShowResponse for formatting API responses.
- Introduced IncoCompositionShowPresenter and IncoCompositionShowView for presentation logic.
- Added tests for IncoCompositionShow feature and OpenAPI conformance.
2026-08-14 15:56:58 +02:00
f667532ff7
refactor(domain): regroup Inco entities and Value Objects under Inco/ and Inco/Composition/ 2026-08-14 15:38:10 +02:00
4d24e5c3fa
feat(IncoSheets): add search functionality for inco sheets
- Introduced IncoIdQuery value object for validating search queries.
- Implemented search method in IncoSheetDirectory and EloquentIncoSheetDirectory.
- Created IncoSheetsSearchController to handle search requests.
- Added IncoSheetsSearchRequest for validating incoming search parameters.
- Developed IncoSheetsSearchResponse for formatting search results.
- Added tests for search functionality in IncoSheetsSearchTest.
- Updated OpenAPI tests to validate search endpoint.
2026-08-14 15:06:54 +02:00
07559b87e5
refactor(request): simplify brands filtering logic
Streamlined the filtering of brands in the IncoSheetsIndexRequest.
2026-08-14 12:18:55 +02:00
68de1fd224
refactor(dto): simplify toArray method in IncoSheetDto
Removed unnecessary comments and streamlined the mapping of allergens and additives.
2026-08-14 12:15:52 +02:00
195227a443
style(dto): update parameter formatting in DTO constructors
style(dto): simplify toArray method by removing unnecessary variable assignment
2026-08-14 12:13:11 +02:00
cbf1a4ce9b
style: update docblock for parameter formatting 2026-08-14 12:10:20 +02:00
37ecd9faa1
feat(dto): add DTOs for IncoSheet components
- Introduced AdditiveDto, AllegationsDto, AllergenDto, BrandDto, NutriscoreDto, PortionsDto, StorageConditionDto, and WeightDto.
- These DTOs facilitate structured data handling for IncoSheet components.
2026-08-14 12:07:04 +02:00
70375f8139
feat(dto): implement PaginationDto for pagination metadata
Added PaginationDto to handle pagination details and links for API responses.
Updated related response classes to utilize the new PaginationDto.
2026-08-14 12:02:13 +02:00
2cc333f1df
feat(middlewares): add TransformApiV1Response middleware
This middleware transforms API responses for version 1.
2026-08-14 11:51:33 +02:00
753456368c
style: format code for consistency and readability
Refactor code formatting for improved consistency across multiple files.
2026-08-14 11:50:26 +02:00
7658483863
feat(api): implement API response transformation middleware
- Added TransformApiV1Response middleware to handle API responses.
- Updated Employee and IncoSheets controllers to return ApiResponse.
- Refactored API routes to use new middleware for v1.
2026-08-14 11:50:12 +02:00
152ee2b5a2
feat(api): add IncoSheets feature with DDD clean architecture, tests & OpenAPI spec
- Use cases: FindAllIncoSheets & FindIncoSheet (filters, pagination, short projection)
- Presentation: controllers, FormRequests with scalar validation, DTOs (camelCase)
- Ports & Adapters: IncoSheetDirectory & EloquentIncoSheetDirectory
- Tests: Pest 4 unit, integration, OpenAPI spectator conformance, dynamic arch tests
- Docs: updated Bruno collection and OpenAPI spec
2026-08-14 11:33:05 +02:00
53b0dd9f1e
feat(employees): implement filtering and sorting for employee retrieval
Added Filter and Sorter classes to handle employee filtering and sorting criteria. Updated FindAllEmployees use case to utilize these new classes for improved employee data retrieval.
2026-08-14 09:30:21 +02:00
6ba04fe009
feat(exceptions): add NotFoundException for entity handling
Introduces a NotFoundException to standardize error handling for missing entities.
2026-08-13 16:24:08 +02:00
58749030bf
feat(employees): add support for filtering by multiple site IDs
- Updated EmployeeFilter to accept an array of SiteId.
- Modified EloquentEmployeeDirectory to handle multiple site filters.
- Enhanced EmployeesIndexRequest to validate siteIds as an array.
- Added tests for siteIds filtering in EmployeesIndexTest and EmployeeOpenApiTest.
2026-08-13 15:30:53 +02:00
b64c1ef366
feat(employees): add filtering capabilities for employee retrieval
- Introduced EmployeeFilter value object for filtering criteria.
- Updated EmployeeDirectory and EloquentEmployeeDirectory to support filtering.
- Modified FindAllEmployees use case to accept filter input.
- Enhanced EmployeesIndexRequest to handle filter parameters.
- Added tests for filtering functionality in EmployeesIndexTest and EloquentEmployeeDirectoryTest.
2026-08-13 15:09:37 +02:00
b7f2de4f92
test(EloquentEmployeeDirectory): add integration tests for employee retrieval and date conversion
Includes tests for finding employees, handling null values, and date conversion.
2026-08-13 14:59:21 +02:00
2529118bcc
refactor(AppServiceProvider): simplify client IP retrieval logic
Removed unnecessary environment check for local client IP.
2026-08-13 14:58:02 +02:00
05ececd879
feat(RequestHelper): add pagination and URI conversion methods
Implement pagination logic and methods to convert request URLs to League URI instances.
2026-08-13 14:52:51 +02:00
6d77bc6332
test(DatesHelper): update date parsing logic and add fallback tests
Enhance date parsing in DatesHelper to correctly handle RFC3339 format.
Add tests for fallback scenarios with DateTimeImmutable.
2026-08-13 13:24:33 +02:00
8afc31c806
test(DatesHelper): update date regex and add instantiation test
- Fixed regex for inverted French date format.
- Added test to prevent direct instantiation of DatesHelper.
2026-08-13 13:11:55 +02:00
289140c630
refactor(DatesHelper): make constructor private and update comment
Updated the constructor of DatesHelper to be private and modified the comment to clarify its purpose as a static class.
2026-08-13 13:07:03 +02:00
d15f30bcbf
test(UuidHelper): update unit tests for UUID version checks
Refactor test descriptions for clarity and consistency.
2026-08-13 13:06:01 +02:00
8e96abc88d
fix(ApiExceptionRenderer): update response for ValidationException
Changed the response status and title for ValidationException from 400 to 422 to align with HTTP standards.
2026-08-13 12:34:32 +02:00
b7c5c98128
fix(ApiExceptionRenderer): change title for ValidationException response
Update the title for the ValidationException response to accurately reflect the error type.
2026-08-13 12:26:56 +02:00
0111ee2ac4
refactor(Employees): remove BaseEnum trait and clean up EmployeeSortColumn
This change simplifies the EmployeeSortColumn enum by removing the BaseEnum trait,
which is no longer needed.
2026-08-13 11:52:13 +02:00
57756ce6ae
test(UuidHelper): add unit tests for UUID version verification
Includes tests for checking if UUIDs are v4 or v7 and retrieving their version.
2026-08-13 10:24:05 +02:00
554e4002df
refactor(api): update Employee request handling and remove toInput method
Refactor EmployeeShowRequest and EmployeesIndexRequest to improve clarity and maintainability.
2026-08-13 09:55:27 +02:00
b2c11a52ad
refactor(api): restructure API routes and improve organization
- Group employee routes under a prefix for better clarity.
- Remove unnecessary blank lines and improve code formatting.
2026-08-13 09:35:09 +02:00
d9329aca92
feat(errors): add detailed error documentation pages
- Implemented views for error codes 400, 404, 422, 429, 500, and 503.
- Updated error handling to use numeric codes instead of enum.
- Enhanced error messages and resolution steps for better user guidance.
2026-08-12 17:40:18 +02:00
699cdf7f8e
fix(api): correct condition for API request handling
Updated the condition to include 'api' in the request check.
2026-08-12 17:32:19 +02:00