prow-authority 3.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +11 -0
- package/.dockerignore +11 -0
- package/.github/workflows/_deploy.yml +191 -0
- package/.github/workflows/deploy-dev.yml +30 -0
- package/.github/workflows/deploy-prod.yml +34 -0
- package/CLAUDE.md +114 -0
- package/Dockerfile +61 -0
- package/Dockerfile.dev +24 -0
- package/README.md +1 -0
- package/package.json +61 -0
- package/src/App.ts +40 -0
- package/src/helpers/api-error.ts +21 -0
- package/src/helpers/authority.ts +216 -0
- package/src/helpers/config.ts +4 -0
- package/src/helpers/holded.ts +105 -0
- package/src/helpers/mysql.ts +15 -0
- package/src/helpers/notifications.ts +55 -0
- package/src/helpers/random.ts +18 -0
- package/src/helpers/s3.ts +43 -0
- package/src/helpers/stripe.ts +8 -0
- package/src/index.ts +47 -0
- package/src/v1/common-types.ts +12 -0
- package/src/v1/controllers/admin/accounting-seat-controller.ts +148 -0
- package/src/v1/controllers/admin/billing-cycle-controller.ts +171 -0
- package/src/v1/controllers/admin/invoice-controller.ts +222 -0
- package/src/v1/controllers/admin/license-controller.ts +190 -0
- package/src/v1/controllers/admin/license-limit-controller.ts +160 -0
- package/src/v1/controllers/admin/notification-controller.ts +115 -0
- package/src/v1/controllers/admin/organization-controller.ts +210 -0
- package/src/v1/controllers/admin/organization-license-controller.ts +224 -0
- package/src/v1/controllers/admin/organization-license-limit-controller.ts +196 -0
- package/src/v1/controllers/admin/organization-usage-controller.ts +167 -0
- package/src/v1/controllers/admin/payment-method-controller.ts +173 -0
- package/src/v1/controllers/admin/policy-controller.ts +138 -0
- package/src/v1/controllers/admin/policy-version-controller.ts +143 -0
- package/src/v1/controllers/admin/schedule-controller.ts +181 -0
- package/src/v1/controllers/admin/service-controller.ts +206 -0
- package/src/v1/controllers/admin/service-notification-controller.ts +166 -0
- package/src/v1/controllers/admin/user-controller.ts +282 -0
- package/src/v1/controllers/admin/user-organization-controller.ts +172 -0
- package/src/v1/controllers/admin/user-policy-controller.ts +164 -0
- package/src/v1/controllers/auth/@deprecated oauth-controller.ts +191 -0
- package/src/v1/controllers/auth/identity-token-controller.ts +286 -0
- package/src/v1/controllers/auth/organization-token-controller.ts +277 -0
- package/src/v1/controllers/auth/temp-code-controller.ts +60 -0
- package/src/v1/controllers/billing/billing-controller.ts +805 -0
- package/src/v1/controllers/organizations/public-organization-controller.ts +1796 -0
- package/src/v1/controllers/policies/public-policy-controller.ts +68 -0
- package/src/v1/controllers/services/public-service-controller.ts +177 -0
- package/src/v1/controllers/services/service-controller.ts +474 -0
- package/src/v1/controllers/users/public-user-controller.ts +471 -0
- package/src/v1/daos/@deprecated auth-dao.ts +173 -0
- package/src/v1/daos/accounting-seat-dao.ts +111 -0
- package/src/v1/daos/billing-cycle-dao.ts +107 -0
- package/src/v1/daos/invoice-dao.ts +131 -0
- package/src/v1/daos/license-dao.ts +152 -0
- package/src/v1/daos/license-limit-dao.ts +120 -0
- package/src/v1/daos/organization-dao.ts +109 -0
- package/src/v1/daos/organization-license-dao.ts +117 -0
- package/src/v1/daos/organization-license-limit-dao.ts +157 -0
- package/src/v1/daos/organization-usage-dao.ts +115 -0
- package/src/v1/daos/payment-method-dao.ts +110 -0
- package/src/v1/daos/policy-dao.ts +105 -0
- package/src/v1/daos/policy-version-dao.ts +112 -0
- package/src/v1/daos/redis-dao.ts +38 -0
- package/src/v1/daos/schema.sql +462 -0
- package/src/v1/daos/service-dao.ts +118 -0
- package/src/v1/daos/service-notification-dao.ts +120 -0
- package/src/v1/daos/user-dao.ts +127 -0
- package/src/v1/daos/user-organization-dao.ts +123 -0
- package/src/v1/daos/user-policy-dao.ts +109 -0
- package/src/v1/middlewares/auth/identity-token-middleware.ts +51 -0
- package/src/v1/middlewares/auth/organization-token-middleware.ts +73 -0
- package/src/v1/middlewares/auth/service-token-middleware.ts +167 -0
- package/src/v1/middlewares/authority-middleware.ts +97 -0
- package/src/v1/middlewares/organizations/organization-middleware.ts +94 -0
- package/src/v1/middlewares/static/static-middleware.ts +41 -0
- package/src/v1/middlewares/users/user-middleware.ts +41 -0
- package/src/v1/routes/admin/accounting-seat-router.ts +89 -0
- package/src/v1/routes/admin/admin-router.ts +61 -0
- package/src/v1/routes/admin/billing-cycle-router.ts +89 -0
- package/src/v1/routes/admin/invoice-router.ts +89 -0
- package/src/v1/routes/admin/license-limit-router.ts +89 -0
- package/src/v1/routes/admin/license-router.ts +89 -0
- package/src/v1/routes/admin/notification-router.ts +61 -0
- package/src/v1/routes/admin/organization-license-limit-router.ts +89 -0
- package/src/v1/routes/admin/organization-license-router.ts +89 -0
- package/src/v1/routes/admin/organization-router.ts +89 -0
- package/src/v1/routes/admin/payment-method-router.ts +89 -0
- package/src/v1/routes/admin/policy-router.ts +89 -0
- package/src/v1/routes/admin/policy-version-router.ts +89 -0
- package/src/v1/routes/admin/schedule-router.ts +75 -0
- package/src/v1/routes/admin/service-notification-router.ts +98 -0
- package/src/v1/routes/admin/service-router.ts +89 -0
- package/src/v1/routes/admin/user-organization-router.ts +89 -0
- package/src/v1/routes/admin/user-policy-router.ts +89 -0
- package/src/v1/routes/admin/user-router.ts +89 -0
- package/src/v1/routes/auth/@deprecated auth-router.ts +199 -0
- package/src/v1/routes/auth/identity-token-router.ts +147 -0
- package/src/v1/routes/auth/organization-token-router.ts +70 -0
- package/src/v1/routes/billing/billing-router.ts +227 -0
- package/src/v1/routes/organizations/invoices-router.ts +48 -0
- package/src/v1/routes/organizations/payments-router.ts +104 -0
- package/src/v1/routes/organizations/public-organization-router.ts +319 -0
- package/src/v1/routes/organizations/users-router.ts +139 -0
- package/src/v1/routes/policies/public-policy-router.ts +50 -0
- package/src/v1/routes/services/public-service-router.ts +89 -0
- package/src/v1/routes/services/service-router.ts +197 -0
- package/src/v1/routes/users/public-user-router.ts +230 -0
- package/src/v1/routes/v1-router.ts +50 -0
- package/src/v1/schemas/admin/accounting-seat-schemas.ts +22 -0
- package/src/v1/schemas/admin/billing-cycle-schemas.ts +20 -0
- package/src/v1/schemas/admin/invoice-schemas.ts +41 -0
- package/src/v1/schemas/admin/license-limit-schemas.ts +25 -0
- package/src/v1/schemas/admin/license-schemas.ts +30 -0
- package/src/v1/schemas/admin/organization-license-limit-schemas.ts +29 -0
- package/src/v1/schemas/admin/organization-license-schemas.ts +43 -0
- package/src/v1/schemas/admin/organization-schemas.ts +67 -0
- package/src/v1/schemas/admin/organization-usage-schemas.ts +15 -0
- package/src/v1/schemas/admin/payment-method-schemas.ts +40 -0
- package/src/v1/schemas/admin/policy-schemas.ts +31 -0
- package/src/v1/schemas/admin/service-notification-schemas.ts +23 -0
- package/src/v1/schemas/admin/service-schemas.ts +56 -0
- package/src/v1/schemas/admin/user-organization-schemas.ts +24 -0
- package/src/v1/schemas/admin/user-policy-schemas.ts +17 -0
- package/src/v1/schemas/admin/user-schemas.ts +52 -0
- package/src/v1/schemas/auth/auth-schemas.ts +55 -0
- package/src/v1/schemas/billing/billing-schemas.ts +32 -0
- package/src/v1/schemas/organizations/public-organization-schemas.ts +77 -0
- package/src/v1/schemas/payments/payment-method-schemas.ts +0 -0
- package/src/v1/schemas/services/public-service-schemas.ts +5 -0
- package/src/v1/schemas/services/service-schemas.ts +27 -0
- package/src/v1/schemas/users/public-user-schemas.ts +73 -0
- package/src/v1/types/admin/accounting-seat-types.ts +16 -0
- package/src/v1/types/admin/billing-cycle-types.ts +14 -0
- package/src/v1/types/admin/invoice-types.ts +39 -0
- package/src/v1/types/admin/license-limit-types.ts +16 -0
- package/src/v1/types/admin/license-types.ts +29 -0
- package/src/v1/types/admin/organization-license-limit-types.ts +13 -0
- package/src/v1/types/admin/organization-license-types.ts +21 -0
- package/src/v1/types/admin/organization-types.ts +60 -0
- package/src/v1/types/admin/organization-usage-types.ts +17 -0
- package/src/v1/types/admin/payment-method-types.ts +30 -0
- package/src/v1/types/admin/policy-types.ts +9 -0
- package/src/v1/types/admin/policy-version-types.ts +12 -0
- package/src/v1/types/admin/service-notification-types.ts +20 -0
- package/src/v1/types/admin/service-types.ts +36 -0
- package/src/v1/types/admin/user-organization-types.ts +31 -0
- package/src/v1/types/admin/user-types.ts +44 -0
- package/src/v1/types/auth/@deprecated auth-types.ts +26 -0
- package/src/v1/types/auth/common-types.ts +7 -0
- package/src/v1/types/auth/confirmation-types.ts +5 -0
- package/src/v1/types/auth/identity-token-types.ts +8 -0
- package/src/v1/types/auth/organization-token-types.ts +23 -0
- package/src/v1/types/auth/otp-types.ts +12 -0
- package/src/v1/types/billing/billing-types.ts +37 -0
- package/src/v1/types/billing/ue-types.ts +29 -0
- package/src/v1/types/organizations/public-organization-types.ts +76 -0
- package/src/v1/types/policies/public-policy-types.ts +7 -0
- package/src/v1/types/services/public-service-types.ts +20 -0
- package/src/v1/types/services/service-types.ts +43 -0
- package/src/v1/types/users/public-user-types.ts +15 -0
- package/src/v1/types/users/user-policy-types.ts +11 -0
- package/static/error.html +55 -0
- package/static/grant.html +117 -0
- package/static/login.html +54 -0
- package/static/oauth-client-logo.webp +0 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Request, Router, Response } from 'express';
|
|
2
|
+
import paymentMethodController from '../../controllers/admin/payment-method-controller';
|
|
3
|
+
import httpcodes from 'http-status-codes';
|
|
4
|
+
import APIError from '../../../helpers/api-error';
|
|
5
|
+
|
|
6
|
+
class PaymentMethodRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await paymentMethodController.get(parseInt(req.params[`id`], 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await paymentMethodController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
const response = await paymentMethodController.add(req.body);
|
|
43
|
+
res.json(response);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await paymentMethodController.update(parseInt(req.params[`id`], 10), req.body);
|
|
56
|
+
res.json(response);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
67
|
+
try {
|
|
68
|
+
const response = await paymentMethodController.delete(parseInt(req.params[`id`], 10));
|
|
69
|
+
res.json(response);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
if (e instanceof APIError) {
|
|
72
|
+
res.status(e.code).json(e.data);
|
|
73
|
+
} else {
|
|
74
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
private readonly init = () => {
|
|
80
|
+
this.router.get(`/:id`, this.get);
|
|
81
|
+
this.router.post(`/list`, this.list);
|
|
82
|
+
this.router.post(`/`, this.add);
|
|
83
|
+
this.router.put(`/:id`, this.update);
|
|
84
|
+
this.router.delete(`/:id`, this.delete);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const paymentMethodRouter = (new PaymentMethodRouter()).router;
|
|
89
|
+
export default paymentMethodRouter;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Request, Response, Router } from 'express';
|
|
2
|
+
import httpcodes from 'http-status-codes';
|
|
3
|
+
import APIError from '../../../helpers/api-error';
|
|
4
|
+
import policyController from '../../controllers/admin/policy-controller';
|
|
5
|
+
|
|
6
|
+
class PolicyRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await policyController.get(parseInt(req.params.id, 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await policyController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
const response = await policyController.add(req.body);
|
|
43
|
+
res.status(httpcodes.CREATED).json(response);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await policyController.update(parseInt(req.params.id, 10), req.body);
|
|
56
|
+
res.json(response);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
67
|
+
try {
|
|
68
|
+
const response = await policyController.delete(parseInt(req.params.id, 10));
|
|
69
|
+
res.json(response);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
if (e instanceof APIError) {
|
|
72
|
+
res.status(e.code).json(e.data);
|
|
73
|
+
} else {
|
|
74
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
private readonly init = () => {
|
|
80
|
+
this.router.get(`/:id`, this.get);
|
|
81
|
+
this.router.post(`/list`, this.list);
|
|
82
|
+
this.router.post(`/`, this.add);
|
|
83
|
+
this.router.put(`/:id`, this.update);
|
|
84
|
+
this.router.delete(`/:id`, this.delete);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const policyRouter = (new PolicyRouter()).router;
|
|
89
|
+
export default policyRouter;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Request, Response, Router } from 'express';
|
|
2
|
+
import httpcodes from 'http-status-codes';
|
|
3
|
+
import APIError from '../../../helpers/api-error';
|
|
4
|
+
import policyVersionController from '../../controllers/admin/policy-version-controller';
|
|
5
|
+
|
|
6
|
+
class PolicyVersionRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await policyVersionController.get(parseInt(req.params.id, 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await policyVersionController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
const response = await policyVersionController.add(req.body);
|
|
43
|
+
res.status(httpcodes.CREATED).json(response);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await policyVersionController.update(parseInt(req.params.id, 10), req.body);
|
|
56
|
+
res.json(response);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
67
|
+
try {
|
|
68
|
+
const response = await policyVersionController.delete(parseInt(req.params.id, 10));
|
|
69
|
+
res.json(response);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
if (e instanceof APIError) {
|
|
72
|
+
res.status(e.code).json(e.data);
|
|
73
|
+
} else {
|
|
74
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
private readonly init = () => {
|
|
80
|
+
this.router.get(`/:id`, this.get);
|
|
81
|
+
this.router.post(`/list`, this.list);
|
|
82
|
+
this.router.post(`/`, this.add);
|
|
83
|
+
this.router.put(`/:id`, this.update);
|
|
84
|
+
this.router.delete(`/:id`, this.delete);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const policyVersionRouter = (new PolicyVersionRouter()).router;
|
|
89
|
+
export default policyVersionRouter;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Request, Router, Response } from 'express';
|
|
2
|
+
import scheduleController from '../../controllers/admin/schedule-controller';
|
|
3
|
+
import httpcodes, { StatusCodes } from 'http-status-codes';
|
|
4
|
+
import APIError from '../../../helpers/api-error';
|
|
5
|
+
|
|
6
|
+
class ScheduleRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly limits = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
await scheduleController.limits();
|
|
17
|
+
res.status(StatusCodes.NO_CONTENT).json();
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly licenseChangeFallback = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
await scheduleController.licenseChangeFallback();
|
|
30
|
+
res.status(StatusCodes.NO_CONTENT).json();
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly billingCycles = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
await scheduleController.billingCycles();
|
|
43
|
+
res.status(StatusCodes.NO_CONTENT).json();
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly invoices = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
await scheduleController.invoices();
|
|
56
|
+
res.status(StatusCodes.NO_CONTENT).json();
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly init = () => {
|
|
67
|
+
this.router.post(`/limits`, this.limits);
|
|
68
|
+
this.router.post(`/licenses`, this.licenseChangeFallback);
|
|
69
|
+
this.router.post(`/billing-cycles`, this.billingCycles);
|
|
70
|
+
this.router.post(`/invoices`, this.invoices);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const scheduleRouter = (new ScheduleRouter()).router;
|
|
75
|
+
export default scheduleRouter;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Request, Router, Response } from 'express';
|
|
2
|
+
import serviceNotificationController from '../../controllers/admin/service-notification-controller';
|
|
3
|
+
import httpcodes from 'http-status-codes';
|
|
4
|
+
import APIError from '../../../helpers/api-error';
|
|
5
|
+
|
|
6
|
+
class ServiceNotificationRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await serviceNotificationController.get(parseInt(req.params[`id`], 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await serviceNotificationController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
if (Array.isArray(req.body)) {
|
|
43
|
+
const results: any[] = [];
|
|
44
|
+
for (const item of req.body) {
|
|
45
|
+
const r = await serviceNotificationController.add(item);
|
|
46
|
+
results.push(r);
|
|
47
|
+
}
|
|
48
|
+
res.json(results);
|
|
49
|
+
} else {
|
|
50
|
+
const response = await serviceNotificationController.add(req.body);
|
|
51
|
+
res.json(response);
|
|
52
|
+
}
|
|
53
|
+
} catch (e) {
|
|
54
|
+
if (e instanceof APIError) {
|
|
55
|
+
res.status(e.code).json(e.data);
|
|
56
|
+
} else {
|
|
57
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
63
|
+
try {
|
|
64
|
+
const response = await serviceNotificationController.update(parseInt(req.params[`id`], 10), req.body);
|
|
65
|
+
res.json(response);
|
|
66
|
+
} catch (e) {
|
|
67
|
+
if (e instanceof APIError) {
|
|
68
|
+
res.status(e.code).json(e.data);
|
|
69
|
+
} else {
|
|
70
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
76
|
+
try {
|
|
77
|
+
const response = await serviceNotificationController.delete(parseInt(req.params[`id`], 10));
|
|
78
|
+
res.json(response);
|
|
79
|
+
} catch (e) {
|
|
80
|
+
if (e instanceof APIError) {
|
|
81
|
+
res.status(e.code).json(e.data);
|
|
82
|
+
} else {
|
|
83
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
private readonly init = () => {
|
|
89
|
+
this.router.get(`/:id`, this.get);
|
|
90
|
+
this.router.post(`/list`, this.list);
|
|
91
|
+
this.router.post(`/`, this.add);
|
|
92
|
+
this.router.put(`/:id`, this.update);
|
|
93
|
+
this.router.delete(`/:id`, this.delete);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const serviceNotificationRouter = (new ServiceNotificationRouter()).router;
|
|
98
|
+
export default serviceNotificationRouter;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Request, Router, Response } from 'express';
|
|
2
|
+
import serviceController from '../../controllers/admin/service-controller';
|
|
3
|
+
import httpcodes from 'http-status-codes';
|
|
4
|
+
import APIError from '../../../helpers/api-error';
|
|
5
|
+
|
|
6
|
+
class ServiceRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await serviceController.get(parseInt(req.params[`id`], 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await serviceController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
const response = await serviceController.add(req.body);
|
|
43
|
+
res.json(response);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await serviceController.update(parseInt(req.params[`id`], 10), req.body);
|
|
56
|
+
res.json(response);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
67
|
+
try {
|
|
68
|
+
const response = await serviceController.delete(parseInt(req.params[`id`], 10));
|
|
69
|
+
res.json(response);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
if (e instanceof APIError) {
|
|
72
|
+
res.status(e.code).json(e.data);
|
|
73
|
+
} else {
|
|
74
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
private readonly init = () => {
|
|
80
|
+
this.router.get(`/:id`, this.get);
|
|
81
|
+
this.router.post(`/list`, this.list);
|
|
82
|
+
this.router.post(`/`, this.add);
|
|
83
|
+
this.router.put(`/:id`, this.update);
|
|
84
|
+
this.router.delete(`/:id`, this.delete);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const serviceRouter = (new ServiceRouter()).router;
|
|
89
|
+
export default serviceRouter;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Request, Router, Response } from 'express';
|
|
2
|
+
import userOrganizationController from '../../controllers/admin/user-organization-controller';
|
|
3
|
+
import httpcodes from 'http-status-codes';
|
|
4
|
+
import APIError from '../../../helpers/api-error';
|
|
5
|
+
|
|
6
|
+
class UserOrganizationRouter {
|
|
7
|
+
router: Router;
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.router = Router();
|
|
11
|
+
this.init();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private readonly get = async (req: Request, res: Response) => {
|
|
15
|
+
try {
|
|
16
|
+
const response = await userOrganizationController.get(parseInt(req.params[`id`], 10));
|
|
17
|
+
res.json(response);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
if (e instanceof APIError) {
|
|
20
|
+
res.status(e.code).json(e.data);
|
|
21
|
+
} else {
|
|
22
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
private readonly list = async (req: Request, res: Response) => {
|
|
28
|
+
try {
|
|
29
|
+
const response = await userOrganizationController.list(req.body);
|
|
30
|
+
res.json(response);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
if (e instanceof APIError) {
|
|
33
|
+
res.status(e.code).json(e.data);
|
|
34
|
+
} else {
|
|
35
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
private readonly add = async (req: Request, res: Response) => {
|
|
41
|
+
try {
|
|
42
|
+
const response = await userOrganizationController.add(req.body);
|
|
43
|
+
res.json(response);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
if (e instanceof APIError) {
|
|
46
|
+
res.status(e.code).json(e.data);
|
|
47
|
+
} else {
|
|
48
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
private readonly update = async (req: Request, res: Response) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await userOrganizationController.update(parseInt(req.params[`id`], 10), req.body);
|
|
56
|
+
res.json(response);
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (e instanceof APIError) {
|
|
59
|
+
res.status(e.code).json(e.data);
|
|
60
|
+
} else {
|
|
61
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
private readonly delete = async (req: Request, res: Response) => {
|
|
67
|
+
try {
|
|
68
|
+
const response = await userOrganizationController.delete(parseInt(req.params[`id`], 10));
|
|
69
|
+
res.json(response);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
if (e instanceof APIError) {
|
|
72
|
+
res.status(e.code).json(e.data);
|
|
73
|
+
} else {
|
|
74
|
+
res.status(httpcodes.INTERNAL_SERVER_ERROR).json({ error: e.message || e });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
private readonly init = () => {
|
|
80
|
+
this.router.get(`/:id`, this.get);
|
|
81
|
+
this.router.post(`/list`, this.list);
|
|
82
|
+
this.router.post(`/`, this.add);
|
|
83
|
+
this.router.put(`/:id`, this.update);
|
|
84
|
+
this.router.delete(`/:id`, this.delete);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const userOrganizationRouter = (new UserOrganizationRouter()).router;
|
|
89
|
+
export default userOrganizationRouter;
|