public abstract class LemonController<U extends AbstractUser<U,ID>,ID extends java.io.Serializable>
extends java.lang.Object
Constructor and Description |
---|
LemonController() |
Modifier and Type | Method and Description |
---|---|
UserDto<ID> |
changeEmail(ID userId,
java.lang.String code,
javax.servlet.http.HttpServletResponse response)
Changes the email
|
void |
changePassword(U user,
ChangePasswordForm changePasswordForm,
javax.servlet.http.HttpServletResponse response)
Changes password
|
void |
createLemonController(LemonProperties properties,
LemonService<U,ID> lemonService,
JwtService jwtService) |
java.util.Map<java.lang.String,java.lang.String> |
fetchNewToken(java.util.Optional<java.lang.Long> expirationMillis,
java.util.Optional<java.lang.String> username,
javax.servlet.http.HttpServletResponse response)
Fetch a new token - for session sliding, switch user etc.
|
U |
fetchUserByEmail(java.lang.String email)
Fetches a user by email
|
U |
fetchUserById(U user)
Fetches a user by ID
|
void |
forgotPassword(java.lang.String email)
The forgot Password feature
|
java.util.Map<java.lang.String,java.lang.Object> |
getContext(java.util.Optional<java.lang.Long> expirationMillis,
javax.servlet.http.HttpServletResponse response)
Returns context properties needed at the client side,
current-user data and an Authorization token as a response header.
|
void |
ping()
A simple function for pinging this server.
|
void |
requestEmailChange(U user,
U updatedUser)
Requests for changing email
|
void |
resendVerificationMail(U user)
Resends verification mail
|
UserDto<ID> |
resetPassword(java.lang.String code,
java.lang.String newPassword,
javax.servlet.http.HttpServletResponse response)
Resets password after it is forgotten
|
UserDto<ID> |
signup(U user,
javax.servlet.http.HttpServletResponse response)
Signs up a user, and
returns current-user data and an Authorization token as a response header.
|
UserDto<ID> |
updateUser(U user,
java.lang.String patch,
javax.servlet.http.HttpServletResponse response)
Updates a user
|
protected UserDto<ID> |
userWithToken(javax.servlet.http.HttpServletResponse response)
returns the current user and a new authorization token in the response
|
UserDto<ID> |
verifyUser(ID id,
java.lang.String code,
javax.servlet.http.HttpServletResponse response)
Verifies current-user
|
@Autowired public void createLemonController(LemonProperties properties, LemonService<U,ID> lemonService, JwtService jwtService)
@GetMapping(value="/ping") @ResponseStatus(value=NO_CONTENT) public void ping()
@GetMapping(value="/context") public java.util.Map<java.lang.String,java.lang.Object> getContext(@RequestParam java.util.Optional<java.lang.Long> expirationMillis, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/users") @ResponseStatus(value=CREATED) public UserDto<ID> signup(@RequestBody U user, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/users/{id}/resend-verification-mail") @ResponseStatus(value=NO_CONTENT) public void resendVerificationMail(@PathVariable(value="id") U user)
@PostMapping(value="/users/{id}/verification") public UserDto<ID> verifyUser(@PathVariable ID id, @RequestParam java.lang.String code, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/forgot-password") @ResponseStatus(value=NO_CONTENT) public void forgotPassword(@RequestParam java.lang.String email)
@PostMapping(value="/reset-password") public UserDto<ID> resetPassword(@RequestParam java.lang.String code, @RequestParam java.lang.String newPassword, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/users/fetch-by-email") public U fetchUserByEmail(@RequestParam java.lang.String email)
@GetMapping(value="/users/{id}") public U fetchUserById(@PathVariable(value="id") U user)
@PatchMapping(value="/users/{id}") public UserDto<ID> updateUser(@PathVariable(value="id") U user, @RequestBody java.lang.String patch, javax.servlet.http.HttpServletResponse response) throws com.fasterxml.jackson.core.JsonProcessingException, java.io.IOException, com.github.fge.jsonpatch.JsonPatchException
com.fasterxml.jackson.core.JsonProcessingException
java.io.IOException
com.github.fge.jsonpatch.JsonPatchException
@PostMapping(value="/users/{id}/password") @ResponseStatus(value=NO_CONTENT) public void changePassword(@PathVariable(value="id") U user, @RequestBody ChangePasswordForm changePasswordForm, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/users/{id}/email-change-request") @ResponseStatus(value=NO_CONTENT) public void requestEmailChange(@PathVariable(value="id") U user, @RequestBody U updatedUser)
@PostMapping(value="/users/{userId}/email") public UserDto<ID> changeEmail(@PathVariable ID userId, @RequestParam java.lang.String code, javax.servlet.http.HttpServletResponse response)
@PostMapping(value="/fetch-new-auth-token") public java.util.Map<java.lang.String,java.lang.String> fetchNewToken(@RequestParam java.util.Optional<java.lang.Long> expirationMillis, @RequestParam java.util.Optional<java.lang.String> username, javax.servlet.http.HttpServletResponse response)