testing and debugging
This commit is contained in:
parent
5d765958e5
commit
a1ab1339e3
10 changed files with 38 additions and 47 deletions
|
@ -8,8 +8,8 @@
|
|||
#include "request/redirect.h"
|
||||
#include "database/exceptions.h"
|
||||
|
||||
Handler::Poll::Poll (Server* server):
|
||||
Handler("login", Request::Method::get),
|
||||
Handler::Poll::Poll (std::weak_ptr<Server> server):
|
||||
Handler("poll", Request::Method::get),
|
||||
server(server)
|
||||
{}
|
||||
|
||||
|
@ -20,9 +20,13 @@ void Handler::Poll::handle (Request& request) {
|
|||
|
||||
if (access.size() != 32)
|
||||
return error(request, Result::tokenProblem, Response::Status::badRequest);
|
||||
|
||||
|
||||
std::shared_ptr<Server> srv = server.lock();
|
||||
if (!srv)
|
||||
return error(request, Result::unknownError, Response::Status::internalError);
|
||||
|
||||
try {
|
||||
Session& session = server->getSession(access);
|
||||
Session& session = srv->getSession(access);
|
||||
throw Redirect(&session);
|
||||
} catch (const Redirect& r) {
|
||||
throw r;
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "handler.h"
|
||||
#include "request/request.h"
|
||||
#include "response/response.h"
|
||||
|
@ -12,7 +14,7 @@ namespace Handler {
|
|||
|
||||
class Poll : public Handler {
|
||||
public:
|
||||
Poll(Server* server);
|
||||
Poll(std::weak_ptr<Server> server);
|
||||
void handle(Request& request) override;
|
||||
|
||||
enum class Result {
|
||||
|
@ -25,7 +27,7 @@ public:
|
|||
|
||||
static void error(Request& request, Result result, Response::Status status);
|
||||
private:
|
||||
Server* server;
|
||||
std::weak_ptr<Server> server;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue