WebFramework v3.0.12
Web framework for C++.
Loading...
Searching...
No Matches
RouteParameters.cpp
1#include "RouteParameters.h"
2
3using namespace std;
4
5namespace framework
6{
7 namespace utility
8 {
9 RouteParameters::RouteParameters(const string& jsonRoute)
10 {
11 size_t startParameters = jsonRoute.find("/{");
12 string parameter;
13
14 baseRoute = string(jsonRoute.begin(), jsonRoute.begin() + startParameters);
15
16 if (baseRoute.empty())
17 {
18 baseRoute += '/';
19 }
20
21 for (size_t i = startParameters + 2; i < jsonRoute.size(); i++)
22 {
23 if (jsonRoute[i] == '}')
24 {
25 if (parameter.find(stringType) != string::npos)
26 {
27 indices.push_back(parameters.try_emplace(parameter.substr(stringType.size()), string()).first->first);
28 }
29 else if (parameter.find(integerType) != string::npos)
30 {
31 indices.push_back(parameters.try_emplace(parameter.substr(integerType.size()), int64_t()).first->first);
32 }
33 else if (parameter.find(doubleType) != string::npos)
34 {
35 indices.push_back(parameters.try_emplace(parameter.substr(doubleType.size()), double()).first->first);
36 }
37 else
38 {
39 indices.push_back(parameters.try_emplace(move(parameter), string()).first->first);
40 }
41
42 parameter.clear();
43
44 i += 2; //skip /{ symbols in next parameter
45
46 continue;
47 }
48
49 parameter += jsonRoute[i];
50 }
51 }
52 }
53}