Improve embedded tracker

Now it conforms to BEPs more closely.
This commit is contained in:
Chocobo1 2019-08-08 23:21:07 +08:00
parent 94f7a095bb
commit 8d0d8e4dcb
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
10 changed files with 423 additions and 230 deletions

View file

@ -28,7 +28,7 @@
#include "httperror.h"
HTTPError::HTTPError(int statusCode, const QString &statusText, const QString &message)
HTTPError::HTTPError(const int statusCode, const QString &statusText, const QString &message)
: RuntimeError {message}
, m_statusCode {statusCode}
, m_statusText {statusText}
@ -50,8 +50,8 @@ BadRequestHTTPError::BadRequestHTTPError(const QString &message)
{
}
ConflictHTTPError::ConflictHTTPError(const QString &message)
: HTTPError(409, QLatin1String("Conflict"), message)
UnauthorizedHTTPError::UnauthorizedHTTPError(const QString &message)
: HTTPError(401, QLatin1String("Unauthorized"), message)
{
}
@ -65,13 +65,18 @@ NotFoundHTTPError::NotFoundHTTPError(const QString &message)
{
}
UnsupportedMediaTypeHTTPError::UnsupportedMediaTypeHTTPError(const QString &message)
: HTTPError(415, QLatin1String("Unsupported Media Type"), message)
MethodNotAllowedHTTPError::MethodNotAllowedHTTPError(const QString &message)
: HTTPError(405, QLatin1String("Method Not Allowed"), message)
{
}
UnauthorizedHTTPError::UnauthorizedHTTPError(const QString &message)
: HTTPError(401, QLatin1String("Unauthorized"), message)
ConflictHTTPError::ConflictHTTPError(const QString &message)
: HTTPError(409, QLatin1String("Conflict"), message)
{
}
UnsupportedMediaTypeHTTPError::UnsupportedMediaTypeHTTPError(const QString &message)
: HTTPError(415, QLatin1String("Unsupported Media Type"), message)
{
}

View file

@ -33,7 +33,7 @@
class HTTPError : public RuntimeError
{
public:
HTTPError(int statusCode, const QString &statusText, const QString &message = "");
HTTPError(int statusCode, const QString &statusText, const QString &message = {});
int statusCode() const;
QString statusText() const;
@ -46,41 +46,47 @@ private:
class BadRequestHTTPError : public HTTPError
{
public:
explicit BadRequestHTTPError(const QString &message = "");
};
class ForbiddenHTTPError : public HTTPError
{
public:
explicit ForbiddenHTTPError(const QString &message = "");
};
class NotFoundHTTPError : public HTTPError
{
public:
explicit NotFoundHTTPError(const QString &message = "");
};
class ConflictHTTPError : public HTTPError
{
public:
explicit ConflictHTTPError(const QString &message = "");
};
class UnsupportedMediaTypeHTTPError : public HTTPError
{
public:
explicit UnsupportedMediaTypeHTTPError(const QString &message = "");
explicit BadRequestHTTPError(const QString &message = {});
};
class UnauthorizedHTTPError : public HTTPError
{
public:
explicit UnauthorizedHTTPError(const QString &message = "");
explicit UnauthorizedHTTPError(const QString &message = {});
};
class ForbiddenHTTPError : public HTTPError
{
public:
explicit ForbiddenHTTPError(const QString &message = {});
};
class NotFoundHTTPError : public HTTPError
{
public:
explicit NotFoundHTTPError(const QString &message = {});
};
class MethodNotAllowedHTTPError : public HTTPError
{
public:
explicit MethodNotAllowedHTTPError(const QString &message = {});
};
class ConflictHTTPError : public HTTPError
{
public:
explicit ConflictHTTPError(const QString &message = {});
};
class UnsupportedMediaTypeHTTPError : public HTTPError
{
public:
explicit UnsupportedMediaTypeHTTPError(const QString &message = {});
};
class InternalServerErrorHTTPError : public HTTPError
{
public:
explicit InternalServerErrorHTTPError(const QString &message = "");
explicit InternalServerErrorHTTPError(const QString &message = {});
};

View file

@ -32,7 +32,7 @@ using namespace Http;
void ResponseBuilder::status(const uint code, const QString &text)
{
m_response.status = ResponseStatus(code, text);
m_response.status = {code, text};
}
void ResponseBuilder::header(const QString &name, const QString &value)

View file

@ -107,8 +107,6 @@ namespace Http
{
uint code;
QString text;
ResponseStatus(uint code = 200, const QString &text = "OK"): code(code), text(text) {}
};
struct Response
@ -117,7 +115,10 @@ namespace Http
QStringMap headers;
QByteArray content;
Response(uint code = 200, const QString &text = "OK"): status(code, text) {}
Response(uint code = 200, const QString &text = "OK")
: status {code, text}
{
}
};
}