mirror of
https://github.com/amitshekhariitbhu/go-backend-clean-architecture.git
synced 2026-04-27 05:25:51 +03:00
[GH-ISSUE #10] Discussion about use cases #4
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/go-backend-clean-architecture#4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @vladiulianbogdan on GitHub (Jan 25, 2023).
Original GitHub issue: https://github.com/amitshekhariitbhu/go-backend-clean-architecture/issues/10
Hello! Thank you for this repo, it is really helpful. 🎉
I want to ask you about the responsibilities of use cases and controller. If I understood correctly, the controller should have the responsibility of sanitising the input from the route, calling the use case and then returning the response. The use case is the one that contains the business logic.
However, the login use case, is just a wrapper around
UserRepositoryand the actual business logic happens in theLoginController:Here, the controller decides that first we should fetch the user, then we check if the password is correct and if it is, we generate both an access token and a refresh token. This is the business logic of a login and I feel like it should be in the use case.
@marcosvidolin commented on GitHub (Aug 29, 2023):
Just bringing up a point for discussion. I've noticed that the use cases have multiple responsibilities, as seen in the case of LoginUsecase. This use case encompasses various functions: GetUserByEmail, CreateAccessToken, CreateRefreshToken...
From my perspective, Login itself should already be a use case.
Whats your thoughts?
@Redarcher9 commented on GitHub (Sep 9, 2023):
Will it be a good idea to implement all the repository related functions in usecase and use the controller only for sanitising the input from the route, calling the use case and then returning the response?