Files
nuki_hub/lib/PsychicHttp/src/PsychicRewrite.cpp
2024-12-30 14:37:09 +01:00

54 lines
1.1 KiB
C++

#include "PsychicRewrite.h"
#include "PsychicRequest.h"
PsychicRewrite::PsychicRewrite(const char* from, const char* to):
_fromPath(from),
_toUri(to),
_toPath(String()),
_toParams(String()),
_filter(nullptr)
{
int index = _toUri.indexOf('?');
if (index > 0) {
_toParams = _toUri.substring(index + 1);
_toPath = _toUri.substring(0, index);
}
else
_toPath = _toUri;
}
PsychicRewrite::~PsychicRewrite()
{
}
PsychicRewrite* PsychicRewrite::setFilter(PsychicRequestFilterFunction fn)
{
_filter = fn; return this;
}
bool PsychicRewrite::filter(PsychicRequest *request) const
{
return _filter == nullptr || _filter(request);
}
const String& PsychicRewrite::from(void) const
{
return _fromPath;
}
const String& PsychicRewrite::toUrl(void) const
{
return _toUri;
}
const String& PsychicRewrite::params(void) const
{
return _toParams;
}
bool PsychicRewrite::match(PsychicRequest *request)
{
if (!filter(request))
return false;
return _fromPath == request->path();
}