Documentation
¶
Overview ¶
Package service for 'User' It will implementing interfaces available on 'user repository' and create bridge for the 'repository' package and 'handler' package
Package 'service' helper for 'User' model * DTO to Model conversion * Model to DTO conversion
Package service for 'User Role' It will implementing interfaces available on 'user role repository' and create bridge for the 'repository' package and 'handler' package
Index ¶
- func NewUser(repo repository.UserRepository) *userService
- func NewUserRole(r repository.UserRoleRepository) *userRoleService
- func RequestToRole(roleRx RoleRequest) (role *model.Role)
- func RequestToUser(userRx UserRequest) (user *model.User)
- type Credential
- type RoleRequest
- type RoleResponse
- type UserRequest
- type UserResponse
- type UserRoleService
- type UserService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewUser ¶
func NewUser(repo repository.UserRepository) *userService
NewUser will return userService instance to connect the service and repository
func NewUserRole ¶
func NewUserRole(r repository.UserRoleRepository) *userRoleService
NewRole will create new instance to bridge 'user role repo' and 'user role handler'
func RequestToRole ¶
func RequestToRole(roleRx RoleRequest) (role *model.Role)
RequestToRole will convert user 'input request' role dto to savable 'role model' format
func RequestToUser ¶
func RequestToUser(userRx UserRequest) (user *model.User)
convert 'Request' data from client to 'User' model before pased to database
Types ¶
type Credential ¶
type Credential struct { Username string `json:"username"` Email string `json:"email"` Password string `json:"password"` Active bool `json:"active"` }
Credential is 'DTO' (Data Transfer Object) for user response This is used for login/ credential checking or other similar operation
type RoleRequest ¶
type RoleRequest struct { ID uint `json:"id"` Name string `json:"name" binding:"required"` Description string `json:"description"` }
RoleRequest is 'DTO' (Data Transfer Object) for 'Role' model It will receive 'Role' data and processed (save/update) to database
type RoleResponse ¶
type RoleResponse struct { ID uint `json:"id"` Name string `json:"name"` Description string `json:"description"` }
RoleResponse is 'DTO' (Data Transfer Object) for 'Role' model It will send 'role' data to client
func RequestToResponseRole ¶
func RequestToResponseRole(roleRx RoleRequest) (roleResponse *RoleResponse)
RequestToResponseRole will convert 'request DTO' to 'Response DTO' format
func RoleToResponse ¶
func RoleToResponse(role model.Role) (roleResponse *RoleResponse)
RoleToResponse will convert 'Role' model to 'Response DTO' format
type UserRequest ¶
type UserRequest struct { Username string `json:"username" binding:"required"` Firstname string `json:"first_name" binding:"required"` Lastname string `json:"last_name"` Email string `json:"email" binding:"required"` Password string `json:"password" binding:"required"` Active bool `json:"active,default=false"` RoleID uint `json:"role_id" binding:"required"` Role *RoleRequest `json:"role"` }
UserRequest is 'DTO' (Data Transfer Object) for 'User' request It will receive 'User' data and processed (save/update) to database
func ResponseToRequestUser ¶
func ResponseToRequestUser(userTx UserResponse) *UserRequest
UserResponseToRequest will convert 'Response' data from client into 'Request' before pased to database
type UserResponse ¶
type UserResponse struct { ID uuid.UUID `json:"id"` Username string `json:"username"` Firstname string `json:"first_name"` Lastname string `json:"last_name"` Email string `json:"email"` Password string `json:"password"` Active bool `json:"active"` RoleID uint `json:"role_id"` Role *RoleResponse `json:"role"` }
UserResponse is 'DTO' (Data Transfer Object) for 'User' model It will send 'User' data to client
func UserToResponse ¶
func UserToResponse(user model.User) (userResponse *UserResponse)
convert 'User' model to 'Response' struct before displaying to client
type UserRoleService ¶
type UserRoleService interface { Get(id uint) (roleResponse *RoleResponse, err error) Gets() (rolesResponse *[]RoleResponse, err error) Create(input RoleRequest) (roleResponse *RoleResponse, err error) Update(id uint, input RoleRequest) (roleResponse *RoleResponse, err error) }
UserRoleService is middleware interface for the repository and handler
type UserService ¶
type UserService interface { Get(username string) (user *UserResponse, err error) GetByEmail(username string) (user *UserResponse, err error) Gets() (users *[]UserResponse, err error) Create(input UserRequest) (user *UserResponse, err error) Update(username string, input UserRequest) (user *UserResponse, err error) CheckCredential(username, password string) (isActive, isValid bool) CheckCredentialByMail(email, password string) (isActive, isValid bool) UserNotFound(username string) (isUserNotFound bool) UserAvailable(username, email string) (isUserAvailable bool) }
UserService is Interface for User Repository with our Handler