Skip to content

Add EditPostDto for wrapping PostEntity with accessor methods #261

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 162 commits into
base: feature/edit-post-application
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
162 commits
Select commit Hold shift + click to select a range
9d781a5
add-show-post-index-collection
zigzagdev Jun 9, 2025
3630b25
Merge pull request #195 from zigzagdev/feature/show-post-index-domain…
zigzagdev Jun 9, 2025
abb11f7
feat: add-queryservice-interface-get-post-index
zigzagdev Jun 10, 2025
1508df6
Merge pull request #196 from zigzagdev/feature/show-post-index-querys…
zigzagdev Jun 10, 2025
9686cfe
Merge pull request #200 from zigzagdev/feature/show-post-index-domain
zigzagdev Jun 10, 2025
21b42ef
feat: add-pagination-application-dto
zigzagdev Jun 10, 2025
4df5751
Merge pull request #201 from zigzagdev/feature/show-post-index-pagina…
zigzagdev Jun 10, 2025
d1dc702
feat: add-viewmodel-pagination
zigzagdev Jun 11, 2025
6768d16
Merge pull request #202 from zigzagdev/feature/show-post-index-pagina…
zigzagdev Jun 11, 2025
fc8ab58
Merge pull request #203 from zigzagdev/feature/show-post-index-pagina…
zigzagdev Jun 11, 2025
ea1c7b1
fix: post-entity-factory
zigzagdev Jun 13, 2025
e035efa
feat: add-infrastructre-post-index
zigzagdev Jun 13, 2025
e32a9ef
Merge pull request #207 from zigzagdev/feature/show-post-index-infras…
zigzagdev Jun 13, 2025
dd016c3
feat: add-pagination-application-dto
zigzagdev Jun 10, 2025
6e35fa3
feat: refactor-infera-return-value
zigzagdev Jun 14, 2025
11d7a91
fix: delete-useless-helper&change-property-primitive-type
zigzagdev Jun 14, 2025
11dec37
Merge pull request #208 from zigzagdev/feature/show-post-index-infra-…
zigzagdev Jun 14, 2025
dfd8c96
feat: add-post-dto_collection
zigzagdev Jun 14, 2025
e80f811
Merge pull request #209 from zigzagdev/feautre/show-post-index-applic…
zigzagdev Jun 14, 2025
d27d0d6
feat: add-show-post-index-usecase
zigzagdev Jun 14, 2025
0807467
Merge pull request #210 from zigzagdev/feature/show-post-index-applic…
zigzagdev Jun 14, 2025
c88a0ca
Merge pull request #211 from zigzagdev/feature/show-post-index-applic…
zigzagdev Jun 14, 2025
561469b
feat: add-show-post-index-viewmodel
zigzagdev Jun 14, 2025
1960deb
Merge pull request #212 from zigzagdev/feature/show-post-index-presen…
zigzagdev Jun 14, 2025
0fdbdef
feat: add-post-controller-method
zigzagdev Jun 14, 2025
9264580
fix: mock-data-fix
zigzagdev Jun 14, 2025
978f13b
fix: delete-useless-code
zigzagdev Jun 14, 2025
a4ee856
Merge pull request #213 from zigzagdev/feature/show-post-index-presen…
zigzagdev Jun 14, 2025
00f62e0
Merge pull request #216 from zigzagdev/feature/show-post-index-presen…
zigzagdev Jun 14, 2025
a1c0326
fix: fix-associated-with-feature-test
zigzagdev Jun 15, 2025
428954d
feat: add-get-all-posts-feature-test
zigzagdev Jun 15, 2025
cb2a95d
Merge pull request #217 from zigzagdev/feature/show-post-index-test
zigzagdev Jun 15, 2025
2774e93
Merge pull request #218 from zigzagdev/feature/show-post-index
zigzagdev Jun 15, 2025
d6137e8
feat: add-query-service-each-post
zigzagdev Jun 15, 2025
a502983
Merge pull request #226 from zigzagdev/feature/show-each-post-domain-…
zigzagdev Jun 15, 2025
033dd1e
feat: add-get-each-post-infra
zigzagdev Jun 15, 2025
6151061
Merge pull request #228 from zigzagdev/feature/show-each-post-infra-q…
zigzagdev Jun 15, 2025
605f80f
Merge pull request #229 from zigzagdev/feature/show-each-post-infra
zigzagdev Jun 15, 2025
df121c3
fix: change-class-dtoclass
zigzagdev Jun 15, 2025
a4d621d
Merge pull request #232 from zigzagdev/feature/show-each-post-applica…
zigzagdev Jun 15, 2025
2fbcf76
feat: add-application-usecase
zigzagdev Jun 15, 2025
a83960d
fix: change-class-dtoclass
zigzagdev Jun 15, 2025
5dd7840
fix: return-value-change
zigzagdev Jun 15, 2025
bb8f2c4
Update workspace.xml
zigzagdev Jun 15, 2025
b77422a
Merge pull request #235 from zigzagdev/delete-workspace-file
zigzagdev Jun 15, 2025
58dc52d
Update workspace.xml
zigzagdev Jun 15, 2025
4b3c2e1
Merge pull request #236 from zigzagdev/feature/show-each-post-applica…
zigzagdev Jun 15, 2025
4ba39c8
rm-ready
zigzagdev Jun 15, 2025
4450f33
Merge branch 'feature/show-each-post' into feature/show-each-post-app…
zigzagdev Jun 15, 2025
9cdd09e
Merge pull request #234 from zigzagdev/feature/show-each-post-applica…
zigzagdev Jun 15, 2025
4ea5c1e
rebase-this-branch
zigzagdev Jun 15, 2025
f8ca194
merge-diff
zigzagdev Jun 15, 2025
48af670
Merge branch 'feature/show-each-post-application' into feature/show-e…
zigzagdev Jun 15, 2025
75a1acd
Merge pull request #237 from zigzagdev/feature/show-each-post-applica…
zigzagdev Jun 15, 2025
3db39d5
Merge pull request #238 from zigzagdev/feature/show-each-post-applica…
zigzagdev Jun 15, 2025
e77f556
feat: add-get-each-post-controller
zigzagdev Jun 15, 2025
21b86e2
Merge pull request #240 from zigzagdev/feature/show-each-post-present…
zigzagdev Jun 15, 2025
86265c7
Merge pull request #241 from zigzagdev/feature/show-each-post-present…
zigzagdev Jun 15, 2025
29ba52c
feat: add-get-each-post-api-feature-test
zigzagdev Jun 15, 2025
4feef10
Merge pull request #242 from zigzagdev/feature/show-each-post-test
zigzagdev Jun 15, 2025
a5e5115
Merge branch 'main' into feature/show-each-post
zigzagdev Jun 16, 2025
f4770ac
Merge pull request #248 from zigzagdev/feature/show-each-post
zigzagdev Jun 16, 2025
0d596e0
Update README.md
zigzagdev Jun 16, 2025
a963620
Merge pull request #264 from zigzagdev/feature/edit-post-application
zigzagdev Jun 21, 2025
8359005
feat: add-edit-post-viewmodel
zigzagdev Jun 21, 2025
68df547
Merge pull request #265 from zigzagdev/feature/edit-post-presentation…
zigzagdev Jun 21, 2025
9df28c9
feat: add-conttroller-edit
zigzagdev Jun 21, 2025
8136012
Merge pull request #268 from zigzagdev/feature/edit-post-presentation…
zigzagdev Jun 21, 2025
25ee2d4
Merge pull request #269 from zigzagdev/feature/edit-post-presentation
zigzagdev Jun 21, 2025
f5cdc6f
feat: implement-post-edit-feature-test
zigzagdev Jun 21, 2025
b769f26
Merge pull request #270 from zigzagdev/feature/edit-post-test
zigzagdev Jun 21, 2025
008a456
feat: conflict-resolution
zigzagdev Jun 21, 2025
f4969fa
Merge pull request #271 from zigzagdev/feature/edit-post
zigzagdev Jun 21, 2025
09fe684
feat: add-service-interface
zigzagdev Jun 22, 2025
1394c00
Merge pull request #282 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 22, 2025
eb362e9
feat: add-password-reset-entity
zigzagdev Jun 22, 2025
4139e31
fix: delete-noused-code
zigzagdev Jun 22, 2025
42e2373
Merge pull request #283 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 22, 2025
a096f2d
Merge pull request #284 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 22, 2025
fdc4fc9
feat: add-migration_file&eloquent
zigzagdev Jun 23, 2025
8b1f46c
Merge pull request #289 from zigzagdev/feature/user-password-reset-mi…
zigzagdev Jun 23, 2025
0163640
feat: add-generate-token-service
zigzagdev Jun 24, 2025
da52174
Merge pull request #290 from zigzagdev/feature/user-password-reset-in…
zigzagdev Jun 24, 2025
878eed8
feat: add-save-token-method
zigzagdev Jun 25, 2025
45f7770
Merge pull request #292 from zigzagdev/feature/user-password-reset-in…
zigzagdev Jun 25, 2025
b6d0756
feat: create-mail-send-norification-method
zigzagdev Jun 28, 2025
595bd7b
feat: create-mail-notification-test
zigzagdev Jun 28, 2025
fac94bd
Merge pull request #293 from zigzagdev/feature/user-password-reset-in…
zigzagdev Jun 28, 2025
ea2dce7
feat: add-throttle-password-request-service
zigzagdev Jun 28, 2025
ff5c909
feat: add-throttle-password-request-service-test
zigzagdev Jun 28, 2025
3a473ce
fix: eloquent-model-coding
zigzagdev Jun 28, 2025
73f9758
Merge pull request #294 from zigzagdev/feature/password-reset-throttle
zigzagdev Jun 28, 2025
067c336
Merge pull request #295 from zigzagdev/feature/user-password-reset-infra
zigzagdev Jun 28, 2025
2b689d3
fix: infra-functions-argument-fix
zigzagdev Jun 28, 2025
d5df8e8
Merge pull request #298 from zigzagdev/feature/user-password-reset-fix
zigzagdev Jun 28, 2025
6039d56
feat: password-reset-request-usecase
zigzagdev Jun 28, 2025
e44f663
feat: password-reset-request-usecase-test
zigzagdev Jun 28, 2025
25f668b
Merge pull request #299 from zigzagdev/feature/user-password-reset-ap…
zigzagdev Jun 28, 2025
d528f48
Merge pull request #300 from zigzagdev/feature/user-password-reset-ap…
zigzagdev Jun 28, 2025
6959445
feat: add-controller-method
zigzagdev Jun 28, 2025
3b4ef59
feat: add-controller-method-test
zigzagdev Jun 28, 2025
bf9c7fb
feat: delete-no-using-code
zigzagdev Jun 28, 2025
6ab139f
Merge pull request #302 from zigzagdev/feature/user-password-reset-pr…
zigzagdev Jun 29, 2025
db90413
Merge pull request #303 from zigzagdev/feature/user-password-reset-pr…
zigzagdev Jun 29, 2025
ad70b88
feat: create-feature-test
zigzagdev Jun 29, 2025
5986f41
Merge pull request #304 from zigzagdev/feature/test-of-feature
zigzagdev Jun 29, 2025
b8074e8
Merge pull request #305 from zigzagdev/feature/user-password-reset
zigzagdev Jun 29, 2025
a9bea81
feat: token-validation-method-add
zigzagdev Jun 29, 2025
fe7e8b9
feat: token-validation-method-test-add
zigzagdev Jun 29, 2025
6c714de
feat: change-search-column-about-created_at_to_requested_at
zigzagdev Jun 29, 2025
23d3c27
Merge pull request #312 from zigzagdev/feature/user-password-reset-in…
zigzagdev Jun 29, 2025
a0b9393
feat: add-reset-password-in-repository
zigzagdev Jun 29, 2025
396cbfb
feat: add-reset-password-in-repository-test
zigzagdev Jun 29, 2025
4613297
Merge pull request #314 from zigzagdev/feature/user-password-reset-in…
zigzagdev Jun 29, 2025
4462965
Merge pull request #315 from zigzagdev/feature/user-password-reset-infra
zigzagdev Jun 29, 2025
4cf2a6e
feat: add-password-reset-usecase
zigzagdev Jun 30, 2025
35fef11
feat: add-password-reset-usecase-test
zigzagdev Jun 30, 2025
97cda98
Merge pull request #316 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
4b94c41
Merge pull request #318 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
e3717b9
feat: add-password-reset-method
zigzagdev Jun 30, 2025
e8b2700
feat: add-password-reset-method
zigzagdev Jun 30, 2025
a74483e
feat: add-password-reset-method-test
zigzagdev Jun 30, 2025
5f6b8df
Merge pull request #320 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
8ff745c
Merge pull request #321 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
785b8ac
Merge pull request #322 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
00eb663
Merge pull request #323 from zigzagdev/feature/user-password-reset-do…
zigzagdev Jun 30, 2025
4f38193
fix: usecase-fix
zigzagdev Jul 1, 2025
efaacbf
feat: create-password-reset-feature-test
zigzagdev Jul 1, 2025
733c979
Merge pull request #325 from zigzagdev/feature/password-reset-test
zigzagdev Jul 2, 2025
bee850f
Merge pull request #326 from zigzagdev/feature/user-password-reset-done
zigzagdev Jul 2, 2025
00fde8d
fix: Enum-relation-fix
zigzagdev Jul 5, 2025
2246e87
feat: make-get-post-query-service-infra
zigzagdev Jul 5, 2025
2cffe8d
feat: make-test
zigzagdev Jul 5, 2025
40b370d
Merge pull request #336 from zigzagdev/feature/see-other-posts-infra-…
zigzagdev Jul 5, 2025
20760c7
fix: argument-perPage_currentPage-change
zigzagdev Jul 5, 2025
8088b8c
Merge pull request #337 from zigzagdev/feature/see-other-posts-infra
zigzagdev Jul 5, 2025
01082cd
feat: add-usecase-method-get-all-posts
zigzagdev Jul 5, 2025
a10b8f5
feat-add-test
zigzagdev Jul 5, 2025
7db966b
Merge pull request #340 from zigzagdev/feature/see-other-posts-applic…
zigzagdev Jul 5, 2025
5fba67a
Merge pull request #341 from zigzagdev/feature/see-other-posts-applic…
zigzagdev Jul 5, 2025
88e65f7
feat: create-collect-posts-viewmodel
zigzagdev Jul 6, 2025
af506e4
feat: add-test
zigzagdev Jul 6, 2025
053c665
Merge pull request #344 from zigzagdev/feature/see-other-posts-presen…
zigzagdev Jul 6, 2025
09a1953
feat: add-controller-test
zigzagdev Jul 6, 2025
e883278
feat: add-controller-get-others-posts
zigzagdev Jul 6, 2025
cde7930
Merge pull request #345 from zigzagdev/feature/see-other-posts-presen…
zigzagdev Jul 6, 2025
46bb270
Merge pull request #346 from zigzagdev/feature/see-other-posts-presen…
zigzagdev Jul 6, 2025
cf1c320
feat: feature-test-correct
zigzagdev Jul 7, 2025
64fa14d
Merge pull request #347 from zigzagdev/feature/see-other-posts-test
zigzagdev Jul 7, 2025
426d96c
Merge pull request #348 from zigzagdev/feature/see-other-posts
zigzagdev Jul 7, 2025
f6ead97
feat: fix-user-register-api-routing
zigzagdev Jul 7, 2025
4534291
Merge pull request #357 from zigzagdev/feature/fix-user-api-test-regi…
zigzagdev Jul 7, 2025
887a2ba
feat: fix-api-endpont
zigzagdev Jul 7, 2025
61a3d9a
Merge pull request #358 from zigzagdev/feature/fix-user-api-test-show
zigzagdev Jul 7, 2025
7e4873d
Merge pull request #359 from zigzagdev/feature/fix-user-api-tests
zigzagdev Jul 8, 2025
7fa6c13
feat: fix-post-create-feature-test
zigzagdev Jul 8, 2025
52904f8
Merge pull request #360 from zigzagdev/feature/fix-post-api-test-create
zigzagdev Jul 8, 2025
6707b31
fix: post-edit-feature-test
zigzagdev Jul 8, 2025
04a553a
Merge pull request #361 from zigzagdev/feature/fix-post-api-test-edit
zigzagdev Jul 8, 2025
0fb52f7
fix: all-user-posts-fetch-feature-test
zigzagdev Jul 9, 2025
2f0a303
Merge pull request #362 from zigzagdev/feature/fix-post-api-test-get_…
zigzagdev Jul 9, 2025
d6b6bfc
Merge pull request #363 from zigzagdev/feature/fix-post-api-tests
zigzagdev Jul 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
183 changes: 5 additions & 178 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 74 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,74 @@
# Laravel-React-Portfolio
# Laravel DDD API

A Laravel-based API project built with Domain-Driven Design and Clean Architecture principles.
Designed for modularity, testability, and long-term maintainability.

## Architecture

This project follows a layered Clean Architecture:

- **Presentation Layer**: Controllers, ViewModels
- **Application Layer**: UseCases, Commands, DTOs, QueryServiceInterfaces
- **Domain Layer**: Entities, Value Objects, RepositoryInterfaces
- **Infrastructure Layer**: Eloquent Repositories, QueryServices

### API Flow

1. Controller constructs a Command object from request input.
2. The Command is passed to a UseCase.
3. UseCase invokes domain logic and persists data via a Repository.
4. Resulting Entity is mapped to a DTO.
5. The DTO is passed to a ViewModel and returned as a JsonResponse.

## Tech Stack

- PHP 8.x / Laravel 10.x
- MySQL or PostgreSQL
- PHPUnit (Unit/Feature testing)
- Laravel Scout + Elasticsearch (optional)

## Directory Structure
```
app/
└── Posts/
├── Application/
│ ├── ApplicationTests/
│ ├── UseCases/
│ ├── UseCommands/
│ ├── Dtos/
│ └── QueryServiceInterface/
├── Domain/
│ ├── DomainTests/
│ ├── Entities/
│ ├── ValueObjects/
│ └── RepositoryInterfaces/
├── Infrastructure/
│ ├── InfrastructureTests/
│ ├── Repositories/
│ └── QueryServices/
└── Presentation/
├── Controllers/
├── PresentationTests/
└── ViewModels/

└── Users/
├── Application/
│ ├── ApplicationTests/
│ ├── UseCases/
│ ├── UseCommands/
│ ├── Dtos/
│ └── QueryServiceInterface/
├── Domain/
│ ├── DomainTests/
│ ├── Entities/
│ ├── ValueObjects/
│ └── RepositoryInterfaces/
├── Infrastructure/
│ ├── InfrastructureTests/
│ ├── Repositories/
│ └── QueryServices/
└── Presentation/
├── Controllers/
├── PresentationTests/
└── ViewModels/
```
2 changes: 1 addition & 1 deletion src/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ yarn-error.log
/.nova
/.vscode
/.zed
.idea/workspace.xml
.idea/
63 changes: 63 additions & 0 deletions src/app/Common/Application/ApplicationTest/PaginationDtoTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?php

namespace App\Common\Application\ApplicationTest;

use Tests\TestCase;
use App\Common\Application\Dto\Pagination;
use App\Common\Application\DtoFactory\PaginationFactory;

class PaginationDtoTest extends TestCase
{
protected function setUp(): void
{
parent::setUp();
}

protected function tearDown(): void
{
parent::tearDown();
}

private function arrayData(): array
{
return [
'data' => [
'id' =>1,
'title' => 'Portugal was the winner of the Nations League 2025',
],
'current_page' => 2,
'from' => 11,
'to' => 20,
'per_page' => 10,
'path' => '/posts',
'last_page' => 5,
'total' => 50,
'first_page_url' => '/posts?page=1',
'last_page_url' => '/posts?page=5',
'next_page_url' => '/posts?page=3',
'prev_page_url' => '/posts?page=1',
'links' => [],
];
}


public function test_check_pagination_type(): void
{
$result = PaginationFactory::build($this->arrayData()['data'], $this->arrayData());

$this->assertInstanceOf(Pagination::class, $result);
}

public function test_check_pagination_values(): void
{
$result = PaginationFactory::build($this->arrayData()['data'], $this->arrayData());

foreach ($this->arrayData() as $key => $expectedValue) {
if ($key === 'data') {
continue;
}
$getter = 'get' . ucfirst(str_replace('_', '', ucwords($key, '_')));
$this->assertEquals($expectedValue, $result->$getter());
}
}
}
Loading