Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
order-management-backend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ascend
order-management-backend
Commits
c9c621d4
Commit
c9c621d4
authored
May 11, 2021
by
Alex Segers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AFP-91]
🎨
Create custom annotations & resolvers for 'ManagerController' (
@asegers
)
parent
3030a1ce
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
14 deletions
+37
-14
ManagerController.java
...com/afp/ordermanagement/controller/ManagerController.java
+37
-14
No files found.
src/main/java/com/afp/ordermanagement/controller/ManagerController.java
View file @
c9c621d4
package
com
.
afp
.
ordermanagement
.
controller
;
import
com.afp.ordermanagement.annotation.AuthManagerController
;
import
com.afp.ordermanagement.annotation.ManagerPayload
;
import
com.afp.ordermanagement.exception.ResourceNotFoundException
;
import
com.afp.ordermanagement.model.Manager
;
import
com.afp.ordermanagement.repository.ManagerRepository
;
import
com.afp.ordermanagement.service.ManagerService
;
import
io.swagger.v3.oas.annotations.parameters.RequestBody
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
reactor.core.publisher.Flux
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
reactor.core.publisher.Mono
;
import
javax.validation.Valid
;
@Validated
@RestController
@RequestMapping
(
"/api"
)
@AuthManagerController
@RequestMapping
(
"/api/managers/"
)
public
class
ManagerController
{
@Autowired
Manager
Repository
managerRepository
;
Manager
Service
managerService
;
@
GetMapping
(
"/manager
"
)
public
Flux
<
Manager
>
getAllManagers
(
)
{
System
.
out
.
println
(
"here"
);
Flux
<
Manager
>
managerFlux
=
managerRepository
.
findAll
(
);
return
managerFlux
;
@
PostMapping
(
"/auth
"
)
public
ResponseEntity
<
Mono
<
Manager
>>
signUpOrLogInManager
(
@ManagerPayload
Manager
managerPayload
)
{
Mono
<
Manager
>
manager
=
managerService
.
getByEmail
(
managerPayload
.
getEmail
())
.
switchIfEmpty
(
managerService
.
create
(
managerPayload
)
);
return
ResponseEntity
.
ok
(
manager
)
;
}
@GetMapping
(
"/account"
)
public
ResponseEntity
<
Mono
<
Manager
>>
getManagerDetails
(
@ManagerPayload
Manager
managerPayload
)
{
Mono
<
Manager
>
existingManager
=
managerService
.
getByEmail
(
managerPayload
.
getEmail
())
.
switchIfEmpty
(
Mono
.
error
(
new
ResourceNotFoundException
()));
return
ResponseEntity
.
ok
(
existingManager
);
}
@PatchMapping
(
"/account"
)
public
ResponseEntity
<
Mono
<
Manager
>>
updateManagerDetails
(
@ManagerPayload
Manager
managerPayload
,
@Valid
@RequestBody
Manager
managerBody
)
{
return
ResponseEntity
.
ok
(
managerService
.
updateByEmail
(
managerPayload
.
getEmail
(),
managerBody
));
}
@DeleteMapping
(
"/account"
)
public
ResponseEntity
deleteManagerDetails
(
@ManagerPayload
Manager
managerPayload
)
{
managerService
.
getByEmail
(
managerPayload
.
getEmail
())
.
switchIfEmpty
(
Mono
.
error
(
new
ResourceNotFoundException
()))
.
flatMap
(
managerService:
:
delete
);
return
ResponseEntity
.
noContent
().
build
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment