1 module hunt.framework.routing.RouteItem;
2
3 import hunt.framework.middleware.MiddlewareInterface;
4 import hunt.logging;
5
6
7 /**
8 *
9 */
10 class RouteItem {
11 private TypeInfo_Class[] _allowedMiddlewares;
12 private TypeInfo_Class[] _skippedMiddlewares;
13
14 string[] methods;
15
16 string path;
17 string urlTemplate;
18 string pattern;
19 string[int] paramKeys;
20
21 bool isRegex = false;
22
23 void withMiddleware(T)() if(is(T : MiddlewareInterface)) {
24 _allowedMiddlewares ~= T.classinfo;
25 }
26
27 void withMiddleware(string name) {
28 try {
29 TypeInfo_Class typeInfo = MiddlewareInterface.get(name);
30 _allowedMiddlewares ~= typeInfo;
31 } catch(Exception ex) {
32 warning(ex.msg);
33 }
34 }
35
36 TypeInfo_Class[] allowedMiddlewares() {
37 return _allowedMiddlewares;
38 }
39
40 void withoutMiddleware(T)() if(is(T : MiddlewareInterface)) {
41 _skippedMiddlewares ~= T.classinfo;
42 }
43
44 void withoutMiddleware(string name) {
45 try {
46 TypeInfo_Class typeInfo = MiddlewareInterface.get(name);
47 _skippedMiddlewares ~= typeInfo;
48 } catch(Exception ex) {
49 warning(ex.msg);
50 }
51 }
52
53 TypeInfo_Class[] skippedMiddlewares() {
54 return _skippedMiddlewares;
55 }
56
57
58 }