summary refs log tree commit diff
path: root/src/api/RouteDescription.js
blob: 290fc823f09d1547ab83637b7ce3b8bd5d430ddc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
export class RouteDescription {
    path;
    /**
     * @type {RouteMethodList}
     */
    methods;

    /**
     * @param data {RouteDescription}
     */
    constructor(data) {
        for (const key of Object.keys(data)) {
            this[key] = data[key];
        }
    }
}

export class RouteMethodList {
    /**
     * @type {RouteMethod}
     */
    get;
    /**
     * @type {RouteMethod}
     */
    post;
    /**
     * @type {RouteMethod}
     */
    put;
    /**
     * @type {RouteMethod}
     */
    delete;
    /**
     * @type {RouteMethod}
     */
    patch;

    /**
     * @param data {RouteMethodList}
     */
    constructor(data) {
        for (const key of Object.keys(data)) {
            this[key] = data[key];
        }
    }
}

export class RouteMethod {
    /**
     * @type {Array<Promise>}
     */
    middlewares = [];
    /**
     * @type {Promise}
     */
    method;
    description;
    exampleBody;
    /*
     * @type {Map<string, string>}
     */
    exampleHeaders = [];

    /**
     * @param data {RouteMethod}
     */
    constructor(data) {
        for (const key of Object.keys(data)) {
            this[key] = data[key];
        }
    }
}