sesssion controller: create sessions when pinging unknown sessions
This commit is contained in:
@@ -46,10 +46,8 @@ public class SessionController
|
|||||||
this.sessionService = sessionService;
|
this.sessionService = sessionService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping
|
private void createSession(HttpServletRequest request, UUID uuid)
|
||||||
public UUID get(HttpServletRequest request)
|
|
||||||
{
|
{
|
||||||
UUID uuid = UUID.randomUUID();
|
|
||||||
String addr = request.getRemoteAddr();
|
String addr = request.getRemoteAddr();
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
SessionEntry sessionEntry = new SessionEntry();
|
SessionEntry sessionEntry = new SessionEntry();
|
||||||
@@ -58,23 +56,32 @@ public class SessionController
|
|||||||
sessionEntry.setStart(now);
|
sessionEntry.setStart(now);
|
||||||
sessionEntry.setLast(now);
|
sessionEntry.setLast(now);
|
||||||
sessionService.createSession(sessionEntry);
|
sessionService.createSession(sessionEntry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping
|
||||||
|
public UUID get(HttpServletRequest request)
|
||||||
|
{
|
||||||
|
UUID uuid = UUID.randomUUID();
|
||||||
|
createSession(request, uuid);
|
||||||
return uuid;
|
return uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/ping")
|
@RequestMapping("/ping")
|
||||||
public ResponseEntity ping(@RequestParam("session") UUID uuid)
|
public ResponseEntity ping(HttpServletRequest request, @RequestParam("session") UUID uuid)
|
||||||
{
|
{
|
||||||
int updated = sessionService.updateLast(uuid);
|
int updated = sessionService.updateLast(uuid);
|
||||||
if (updated == 0)
|
if (updated == 0)
|
||||||
{
|
{
|
||||||
return ResponseEntity.notFound().build();
|
// create the session anyway
|
||||||
|
createSession(request, uuid);
|
||||||
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseEntity.ok().build();
|
return ResponseEntity.ok().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping
|
@DeleteMapping
|
||||||
public ResponseEntity delete(@RequestParam("session") UUID uuid, HttpServletRequest request)
|
public ResponseEntity delete(@RequestParam("session") UUID uuid)
|
||||||
{
|
{
|
||||||
int deleted = sessionService.deleteSession(uuid);
|
int deleted = sessionService.deleteSession(uuid);
|
||||||
if (deleted == 0)
|
if (deleted == 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user