@intlayer/backend 3.0.3 → 3.2.0

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.
Files changed (272) hide show
  1. package/dist/cjs/controllers/dictionary.controller.cjs +91 -18
  2. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  3. package/dist/cjs/controllers/organization.controller.cjs +140 -12
  4. package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
  5. package/dist/cjs/controllers/project.controller.cjs +181 -31
  6. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  7. package/dist/cjs/controllers/projectAccessKey.controller.cjs +61 -10
  8. package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
  9. package/dist/cjs/controllers/sessionAuth.controller.cjs +291 -62
  10. package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -1
  11. package/dist/cjs/controllers/stripe.controller.cjs +84 -0
  12. package/dist/cjs/controllers/stripe.controller.cjs.map +1 -0
  13. package/dist/cjs/controllers/user.controller.cjs +49 -20
  14. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  15. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +182 -0
  16. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +1 -0
  17. package/dist/cjs/emails/SubscriptionPaymentError.cjs +182 -0
  18. package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +1 -0
  19. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +188 -0
  20. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +1 -0
  21. package/dist/cjs/export.cjs.map +1 -1
  22. package/dist/cjs/index.cjs +16 -5
  23. package/dist/cjs/index.cjs.map +1 -1
  24. package/dist/cjs/middlewares/oAuth2.middleware.cjs +10 -0
  25. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
  26. package/dist/cjs/middlewares/sessionAuth.middleware.cjs +50 -10
  27. package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
  28. package/dist/cjs/routes/dictionary.routes.cjs +2 -62
  29. package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
  30. package/dist/cjs/routes/organization.routes.cjs +1 -25
  31. package/dist/cjs/routes/organization.routes.cjs.map +1 -1
  32. package/dist/cjs/routes/project.routes.cjs +10 -85
  33. package/dist/cjs/routes/project.routes.cjs.map +1 -1
  34. package/dist/cjs/routes/sessionAuth.routes.cjs +26 -25
  35. package/dist/cjs/routes/sessionAuth.routes.cjs.map +1 -1
  36. package/dist/cjs/routes/stripe.routes.cjs +42 -0
  37. package/dist/cjs/routes/stripe.routes.cjs.map +1 -0
  38. package/dist/cjs/routes/user.routes.cjs +6 -27
  39. package/dist/cjs/routes/user.routes.cjs.map +1 -1
  40. package/dist/cjs/schemas/organization.schema.cjs +5 -0
  41. package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
  42. package/dist/cjs/{middlewares/admin.middleware.cjs → schemas/plans.schema.cjs} +32 -20
  43. package/dist/cjs/schemas/plans.schema.cjs.map +1 -0
  44. package/dist/cjs/schemas/project.schema.cjs +14 -1
  45. package/dist/cjs/schemas/project.schema.cjs.map +1 -1
  46. package/dist/cjs/schemas/user.schema.cjs +5 -1
  47. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  48. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  49. package/dist/cjs/services/email.service.cjs +113 -43
  50. package/dist/cjs/services/email.service.cjs.map +1 -1
  51. package/dist/cjs/services/oAuth2.service.cjs +16 -8
  52. package/dist/cjs/services/oAuth2.service.cjs.map +1 -1
  53. package/dist/cjs/services/organization.service.cjs +63 -8
  54. package/dist/cjs/services/organization.service.cjs.map +1 -1
  55. package/dist/cjs/services/project.service.cjs +9 -5
  56. package/dist/cjs/services/project.service.cjs.map +1 -1
  57. package/dist/cjs/services/projectAccessKey.service.cjs +42 -10
  58. package/dist/cjs/services/projectAccessKey.service.cjs.map +1 -1
  59. package/dist/cjs/services/sessionAuth.service.cjs +9 -11
  60. package/dist/cjs/services/sessionAuth.service.cjs.map +1 -1
  61. package/dist/cjs/services/subscription.service.cjs +201 -0
  62. package/dist/cjs/services/subscription.service.cjs.map +1 -0
  63. package/dist/cjs/services/user.service.cjs +1 -3
  64. package/dist/cjs/services/user.service.cjs.map +1 -1
  65. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  66. package/dist/cjs/types/organization.types.cjs.map +1 -1
  67. package/dist/cjs/types/plan.types.cjs +17 -0
  68. package/dist/cjs/types/plan.types.cjs.map +1 -0
  69. package/dist/cjs/types/project.types.cjs.map +1 -1
  70. package/dist/cjs/types/session.types.cjs.map +1 -1
  71. package/dist/cjs/types/user.types.cjs.map +1 -1
  72. package/dist/cjs/utils/errors/ErrorHandler.cjs +29 -9
  73. package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
  74. package/dist/cjs/utils/errors/ErrorsClass.cjs +17 -3
  75. package/dist/cjs/utils/errors/ErrorsClass.cjs.map +1 -1
  76. package/dist/cjs/utils/errors/errorCodes.cjs +321 -9
  77. package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
  78. package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
  79. package/dist/cjs/utils/mapper/project.cjs +19 -3
  80. package/dist/cjs/utils/mapper/project.cjs.map +1 -1
  81. package/dist/cjs/utils/mapper/user.cjs.map +1 -1
  82. package/dist/cjs/utils/plan.cjs +75 -0
  83. package/dist/cjs/utils/plan.cjs.map +1 -0
  84. package/dist/cjs/utils/responseData.cjs +8 -0
  85. package/dist/cjs/utils/responseData.cjs.map +1 -1
  86. package/dist/cjs/webhooks/stripe.webhook.cjs +133 -0
  87. package/dist/cjs/webhooks/stripe.webhook.cjs.map +1 -0
  88. package/dist/esm/controllers/dictionary.controller.mjs +91 -18
  89. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  90. package/dist/esm/controllers/organization.controller.mjs +140 -12
  91. package/dist/esm/controllers/organization.controller.mjs.map +1 -1
  92. package/dist/esm/controllers/project.controller.mjs +181 -31
  93. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  94. package/dist/esm/controllers/projectAccessKey.controller.mjs +61 -10
  95. package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
  96. package/dist/esm/controllers/sessionAuth.controller.mjs +287 -61
  97. package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -1
  98. package/dist/esm/controllers/stripe.controller.mjs +60 -0
  99. package/dist/esm/controllers/stripe.controller.mjs.map +1 -0
  100. package/dist/esm/controllers/user.controller.mjs +49 -20
  101. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  102. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +168 -0
  103. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -0
  104. package/dist/esm/emails/SubscriptionPaymentError.mjs +168 -0
  105. package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -0
  106. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +174 -0
  107. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -0
  108. package/dist/esm/export.mjs.map +1 -1
  109. package/dist/esm/index.mjs +19 -7
  110. package/dist/esm/index.mjs.map +1 -1
  111. package/dist/esm/middlewares/oAuth2.middleware.mjs +10 -0
  112. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  113. package/dist/esm/middlewares/sessionAuth.middleware.mjs +49 -9
  114. package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
  115. package/dist/esm/routes/dictionary.routes.mjs +2 -62
  116. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  117. package/dist/esm/routes/organization.routes.mjs +1 -25
  118. package/dist/esm/routes/organization.routes.mjs.map +1 -1
  119. package/dist/esm/routes/project.routes.mjs +10 -85
  120. package/dist/esm/routes/project.routes.mjs.map +1 -1
  121. package/dist/esm/routes/sessionAuth.routes.mjs +29 -26
  122. package/dist/esm/routes/sessionAuth.routes.mjs.map +1 -1
  123. package/dist/esm/routes/stripe.routes.mjs +17 -0
  124. package/dist/esm/routes/stripe.routes.mjs.map +1 -0
  125. package/dist/esm/routes/user.routes.mjs +6 -27
  126. package/dist/esm/routes/user.routes.mjs.map +1 -1
  127. package/dist/esm/schemas/organization.schema.mjs +5 -0
  128. package/dist/esm/schemas/organization.schema.mjs.map +1 -1
  129. package/dist/esm/schemas/plans.schema.mjs +32 -0
  130. package/dist/esm/schemas/plans.schema.mjs.map +1 -0
  131. package/dist/esm/schemas/project.schema.mjs +13 -1
  132. package/dist/esm/schemas/project.schema.mjs.map +1 -1
  133. package/dist/esm/schemas/user.schema.mjs +5 -1
  134. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  135. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  136. package/dist/esm/services/email.service.mjs +125 -43
  137. package/dist/esm/services/email.service.mjs.map +1 -1
  138. package/dist/esm/services/oAuth2.service.mjs +16 -8
  139. package/dist/esm/services/oAuth2.service.mjs.map +1 -1
  140. package/dist/esm/services/organization.service.mjs +58 -7
  141. package/dist/esm/services/organization.service.mjs.map +1 -1
  142. package/dist/esm/services/project.service.mjs +9 -5
  143. package/dist/esm/services/project.service.mjs.map +1 -1
  144. package/dist/esm/services/projectAccessKey.service.mjs +42 -10
  145. package/dist/esm/services/projectAccessKey.service.mjs.map +1 -1
  146. package/dist/esm/services/sessionAuth.service.mjs +9 -10
  147. package/dist/esm/services/sessionAuth.service.mjs.map +1 -1
  148. package/dist/esm/services/subscription.service.mjs +178 -0
  149. package/dist/esm/services/subscription.service.mjs.map +1 -0
  150. package/dist/esm/services/user.service.mjs +1 -3
  151. package/dist/esm/services/user.service.mjs.map +1 -1
  152. package/dist/esm/types/plan.types.mjs +1 -0
  153. package/dist/esm/types/plan.types.mjs.map +1 -0
  154. package/dist/esm/utils/errors/ErrorHandler.mjs +29 -9
  155. package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
  156. package/dist/esm/utils/errors/ErrorsClass.mjs +17 -3
  157. package/dist/esm/utils/errors/ErrorsClass.mjs.map +1 -1
  158. package/dist/esm/utils/errors/errorCodes.mjs +321 -9
  159. package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
  160. package/dist/esm/utils/mapper/organization.mjs.map +1 -1
  161. package/dist/esm/utils/mapper/project.mjs +17 -2
  162. package/dist/esm/utils/mapper/project.mjs.map +1 -1
  163. package/dist/esm/utils/mapper/user.mjs.map +1 -1
  164. package/dist/esm/utils/plan.mjs +50 -0
  165. package/dist/esm/utils/plan.mjs.map +1 -0
  166. package/dist/esm/utils/responseData.mjs +8 -0
  167. package/dist/esm/utils/responseData.mjs.map +1 -1
  168. package/dist/esm/webhooks/stripe.webhook.mjs +113 -0
  169. package/dist/esm/webhooks/stripe.webhook.mjs.map +1 -0
  170. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  171. package/dist/types/controllers/organization.controller.d.ts.map +1 -1
  172. package/dist/types/controllers/project.controller.d.ts +9 -7
  173. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  174. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  175. package/dist/types/controllers/sessionAuth.controller.d.ts +28 -9
  176. package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -1
  177. package/dist/types/controllers/stripe.controller.d.ts +17 -0
  178. package/dist/types/controllers/stripe.controller.d.ts.map +1 -0
  179. package/dist/types/controllers/user.controller.d.ts.map +1 -1
  180. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +20 -0
  181. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -0
  182. package/dist/types/emails/SubscriptionPaymentError.d.ts +20 -0
  183. package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -0
  184. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +20 -0
  185. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -0
  186. package/dist/types/export.d.ts +2 -0
  187. package/dist/types/export.d.ts.map +1 -1
  188. package/dist/types/index.d.ts.map +1 -1
  189. package/dist/types/middlewares/oAuth2.middleware.d.ts.map +1 -1
  190. package/dist/types/middlewares/sessionAuth.middleware.d.ts +13 -7
  191. package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
  192. package/dist/types/models/dictionary.model.d.ts +1 -1
  193. package/dist/types/models/oAuth2.model.d.ts +1 -1
  194. package/dist/types/models/organization.model.d.ts +2 -1
  195. package/dist/types/models/organization.model.d.ts.map +1 -1
  196. package/dist/types/models/plan.moddel.d.ts +11 -0
  197. package/dist/types/models/plan.moddel.d.ts.map +1 -0
  198. package/dist/types/models/project.model.d.ts +1 -1
  199. package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
  200. package/dist/types/routes/organization.routes.d.ts.map +1 -1
  201. package/dist/types/routes/project.routes.d.ts.map +1 -1
  202. package/dist/types/routes/sessionAuth.routes.d.ts +15 -2
  203. package/dist/types/routes/sessionAuth.routes.d.ts.map +1 -1
  204. package/dist/types/routes/stripe.routes.d.ts +10 -0
  205. package/dist/types/routes/stripe.routes.d.ts.map +1 -0
  206. package/dist/types/routes/user.routes.d.ts.map +1 -1
  207. package/dist/types/schemas/dictionary.schema.d.ts +2 -2
  208. package/dist/types/schemas/oAuth2.schema.d.ts +2 -2
  209. package/dist/types/schemas/organization.schema.d.ts +3 -2
  210. package/dist/types/schemas/organization.schema.d.ts.map +1 -1
  211. package/dist/types/schemas/plans.schema.d.ts +16 -0
  212. package/dist/types/schemas/plans.schema.d.ts.map +1 -0
  213. package/dist/types/schemas/project.schema.d.ts +12 -3
  214. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  215. package/dist/types/schemas/user.schema.d.ts +2 -2
  216. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  217. package/dist/types/services/dictionary.service.d.ts +9 -9
  218. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  219. package/dist/types/services/email.service.d.ts +33 -4
  220. package/dist/types/services/email.service.d.ts.map +1 -1
  221. package/dist/types/services/oAuth2.service.d.ts +7 -5
  222. package/dist/types/services/oAuth2.service.d.ts.map +1 -1
  223. package/dist/types/services/organization.service.d.ts +27 -6
  224. package/dist/types/services/organization.service.d.ts.map +1 -1
  225. package/dist/types/services/plans.service.d.ts +35 -0
  226. package/dist/types/services/plans.service.d.ts.map +1 -0
  227. package/dist/types/services/project.service.d.ts +6 -6
  228. package/dist/types/services/project.service.d.ts.map +1 -1
  229. package/dist/types/services/projectAccessKey.service.d.ts +4 -4
  230. package/dist/types/services/projectAccessKey.service.d.ts.map +1 -1
  231. package/dist/types/services/sessionAuth.service.d.ts +9 -16
  232. package/dist/types/services/sessionAuth.service.d.ts.map +1 -1
  233. package/dist/types/services/subscription.service.d.ts +22 -0
  234. package/dist/types/services/subscription.service.d.ts.map +1 -0
  235. package/dist/types/services/user.service.d.ts +11 -19
  236. package/dist/types/services/user.service.d.ts.map +1 -1
  237. package/dist/types/types/dictionary.types.d.ts +2 -2
  238. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  239. package/dist/types/types/organization.types.d.ts +4 -2
  240. package/dist/types/types/organization.types.d.ts.map +1 -1
  241. package/dist/types/types/plan.types.d.ts +18 -0
  242. package/dist/types/types/plan.types.d.ts.map +1 -0
  243. package/dist/types/types/project.types.d.ts +13 -2
  244. package/dist/types/types/project.types.d.ts.map +1 -1
  245. package/dist/types/types/session.types.d.ts +6 -6
  246. package/dist/types/types/session.types.d.ts.map +1 -1
  247. package/dist/types/types/user.types.d.ts +2 -1
  248. package/dist/types/types/user.types.d.ts.map +1 -1
  249. package/dist/types/utils/errors/ErrorHandler.d.ts +5 -3
  250. package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
  251. package/dist/types/utils/errors/ErrorsClass.d.ts +4 -1
  252. package/dist/types/utils/errors/ErrorsClass.d.ts.map +1 -1
  253. package/dist/types/utils/errors/errorCodes.d.ts +313 -1
  254. package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
  255. package/dist/types/utils/mapper/organization.d.ts +1 -1
  256. package/dist/types/utils/mapper/organization.d.ts.map +1 -1
  257. package/dist/types/utils/mapper/project.d.ts +10 -1
  258. package/dist/types/utils/mapper/project.d.ts.map +1 -1
  259. package/dist/types/utils/mapper/user.d.ts +1 -1
  260. package/dist/types/utils/mapper/user.d.ts.map +1 -1
  261. package/dist/types/utils/plan.d.ts +17 -0
  262. package/dist/types/utils/plan.d.ts.map +1 -0
  263. package/dist/types/utils/responseData.d.ts +13 -2
  264. package/dist/types/utils/responseData.d.ts.map +1 -1
  265. package/dist/types/webhooks/stripe.d.ts +3 -0
  266. package/dist/types/webhooks/stripe.d.ts.map +1 -0
  267. package/dist/types/webhooks/stripe.webhook.d.ts +3 -0
  268. package/dist/types/webhooks/stripe.webhook.d.ts.map +1 -0
  269. package/package.json +27 -24
  270. package/dist/cjs/middlewares/admin.middleware.cjs.map +0 -1
  271. package/dist/esm/middlewares/admin.middleware.mjs +0 -20
  272. package/dist/esm/middlewares/admin.middleware.mjs.map +0 -1
@@ -7,20 +7,13 @@ import {
7
7
  import { getUserBySession as getUserBySessionService } from './../services/user.service.mjs';
8
8
  import { Cookies } from './../utils/cookies.mjs';
9
9
  import jwt from "jsonwebtoken";
10
- var AuthInformationType = /* @__PURE__ */ ((AuthInformationType2) => {
11
- AuthInformationType2[AuthInformationType2["IsNull"] = 0] = "IsNull";
12
- AuthInformationType2[AuthInformationType2["IsDefined"] = 1] = "IsDefined";
13
- return AuthInformationType2;
14
- })(AuthInformationType || {});
15
10
  const checkUser = async (req, res, next) => {
16
11
  const { [Cookies.JWT_AUTH]: sessionToken } = req.cookies;
17
12
  res.locals.user = null;
18
13
  res.locals.authType = null;
19
14
  try {
20
15
  if (sessionToken) {
21
- const user = await getUserBySessionService(
22
- sessionToken
23
- );
16
+ const user = await getUserBySessionService(sessionToken);
24
17
  if (user) {
25
18
  res.locals.user = user.toObject();
26
19
  res.locals.authType = "session";
@@ -87,8 +80,55 @@ const checkProject = async (req, res, next) => {
87
80
  }
88
81
  return next();
89
82
  };
83
+ const checkAdmin = async (_req, res, next) => {
84
+ const { organization, project, user, authType } = res.locals;
85
+ if (authType !== "session") {
86
+ return next();
87
+ }
88
+ res.locals.organizationRights = {
89
+ read: true,
90
+ write: false,
91
+ admin: false
92
+ };
93
+ res.locals.projectRights = {
94
+ read: true,
95
+ write: false,
96
+ admin: false
97
+ };
98
+ res.locals.projectRights = {
99
+ read: true,
100
+ write: false,
101
+ admin: false
102
+ };
103
+ if (user) {
104
+ if (organization) {
105
+ const isOrganizationAdmin = organization.adminsIds.map((id) => String(id)).includes(String(user._id)) ?? false;
106
+ res.locals.isOrganizationAdmin = isOrganizationAdmin;
107
+ res.locals.organizationRights = {
108
+ read: true,
109
+ write: isOrganizationAdmin,
110
+ admin: isOrganizationAdmin
111
+ };
112
+ }
113
+ if (project) {
114
+ const isProjectAdmin = project.adminsIds.map((id) => String(id)).includes(String(user._id)) ?? false;
115
+ res.locals.isProjectAdmin = isProjectAdmin;
116
+ res.locals.projectRights = {
117
+ read: true,
118
+ write: isProjectAdmin,
119
+ admin: isProjectAdmin
120
+ };
121
+ res.locals.dictionaryRights = {
122
+ read: true,
123
+ write: true,
124
+ admin: true
125
+ };
126
+ }
127
+ }
128
+ return next();
129
+ };
90
130
  export {
91
- AuthInformationType,
131
+ checkAdmin,
92
132
  checkOrganization,
93
133
  checkProject,
94
134
  checkUser
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/middlewares/sessionAuth.middleware.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { OrganizationModel } from '@models/organization.model';\nimport { ProjectModel } from '@models/project.model';\nimport {\n clearOrganizationAuth,\n clearProjectAuth,\n} from '@services/sessionAuth.service';\nimport { getUserBySession as getUserBySessionService } from '@services/user.service';\nimport { Cookies } from '@utils/cookies';\nimport type { Request, Response, NextFunction } from 'express';\nimport jwt from 'jsonwebtoken';\nimport type {\n Organization,\n OrganizationDocument,\n} from '@/types/organization.types';\nimport type { Project, ProjectDocument } from '@/types/project.types';\nimport type { User, UserDocument } from '@/types/user.types';\n\nexport enum AuthInformationType {\n IsNull,\n IsDefined,\n}\n\nexport type ResponseWithInformation<ResBody = any> = Response<\n ResBody,\n {\n user: User | null;\n organization: Organization | null;\n isOrganizationAdmin: boolean | null;\n project: Project | null;\n isProjectAdmin: boolean | null;\n authType: 'session' | 'oauth2' | null;\n }\n>;\n\nexport const checkUser = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const { [Cookies.JWT_AUTH]: sessionToken } = req.cookies;\n\n res.locals.user = null;\n res.locals.authType = null;\n\n try {\n if (sessionToken) {\n const user: UserDocument | null = (await getUserBySessionService(\n sessionToken\n )) as UserDocument | null;\n\n if (user) {\n res.locals.user = user.toObject();\n res.locals.authType = 'session';\n }\n }\n } catch (error) {\n console.error('Error fetching session:', error);\n }\n\n return next();\n};\n\nexport const checkOrganization = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const jwtTokenOrganization = req.cookies[Cookies.JWT_ORGANIZATION];\n\n res.locals.organization = null;\n\n try {\n if (!jwtTokenOrganization || jwtTokenOrganization === 'undefined') {\n clearOrganizationAuth(res);\n return next();\n }\n\n const organizationData = jwt.verify(\n jwtTokenOrganization,\n process.env.JWT_TOKEN_SECRET!\n ) as Organization;\n\n if (!organizationData) {\n clearOrganizationAuth(res);\n return next();\n }\n\n const organization: OrganizationDocument | null =\n await OrganizationModel.findById(organizationData._id);\n\n if (!organization) {\n clearOrganizationAuth(res);\n return next();\n }\n\n res.locals.organization = organization.toObject();\n } catch (error) {\n console.error('Error fetching organization:', error);\n }\n\n return next();\n};\n\nexport const checkProject = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const jwtTokenProject = req.cookies[Cookies.JWT_PROJECT];\n res.locals.project = null;\n\n try {\n if (!jwtTokenProject || jwtTokenProject === 'undefined') {\n clearProjectAuth(res);\n return next();\n }\n\n const decodedTokenProject = jwt.verify(\n jwtTokenProject,\n process.env.JWT_TOKEN_SECRET!\n ) as Project;\n\n if (!decodedTokenProject) {\n clearProjectAuth(res);\n return next();\n }\n\n const project: ProjectDocument | null = await ProjectModel.findById(\n decodedTokenProject._id\n );\n\n if (\n !project ||\n !res.locals.organization ||\n String(project.organizationId) !== String(res.locals.organization._id)\n ) {\n clearProjectAuth(res);\n return next();\n }\n\n res.locals.project = project.toObject();\n } catch (error) {\n console.error('Error fetching project:', error);\n }\n\n return next();\n};\n"],"mappings":"AAEA,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB,+BAA+B;AAC5D,SAAS,eAAe;AAExB,OAAO,SAAS;AAQT,IAAK,sBAAL,kBAAKA,yBAAL;AACL,EAAAA,0CAAA;AACA,EAAAA,0CAAA;AAFU,SAAAA;AAAA,GAAA;AAiBL,MAAM,YAAY,OACvB,KACA,KACA,SACkB;AAClB,QAAM,EAAE,CAAC,QAAQ,QAAQ,GAAG,aAAa,IAAI,IAAI;AAEjD,MAAI,OAAO,OAAO;AAClB,MAAI,OAAO,WAAW;AAEtB,MAAI;AACF,QAAI,cAAc;AAChB,YAAM,OAA6B,MAAM;AAAA,QACvC;AAAA,MACF;AAEA,UAAI,MAAM;AACR,YAAI,OAAO,OAAO,KAAK,SAAS;AAChC,YAAI,OAAO,WAAW;AAAA,MACxB;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,2BAA2B,KAAK;AAAA,EAChD;AAEA,SAAO,KAAK;AACd;AAEO,MAAM,oBAAoB,OAC/B,KACA,KACA,SACkB;AAClB,QAAM,uBAAuB,IAAI,QAAQ,QAAQ,gBAAgB;AAEjE,MAAI,OAAO,eAAe;AAE1B,MAAI;AACF,QAAI,CAAC,wBAAwB,yBAAyB,aAAa;AACjE,4BAAsB,GAAG;AACzB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,mBAAmB,IAAI;AAAA,MAC3B;AAAA,MACA,QAAQ,IAAI;AAAA,IACd;AAEA,QAAI,CAAC,kBAAkB;AACrB,4BAAsB,GAAG;AACzB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,eACJ,MAAM,kBAAkB,SAAS,iBAAiB,GAAG;AAEvD,QAAI,CAAC,cAAc;AACjB,4BAAsB,GAAG;AACzB,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,OAAO,eAAe,aAAa,SAAS;AAAA,EAClD,SAAS,OAAO;AACd,YAAQ,MAAM,gCAAgC,KAAK;AAAA,EACrD;AAEA,SAAO,KAAK;AACd;AAEO,MAAM,eAAe,OAC1B,KACA,KACA,SACkB;AAClB,QAAM,kBAAkB,IAAI,QAAQ,QAAQ,WAAW;AACvD,MAAI,OAAO,UAAU;AAErB,MAAI;AACF,QAAI,CAAC,mBAAmB,oBAAoB,aAAa;AACvD,uBAAiB,GAAG;AACpB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,sBAAsB,IAAI;AAAA,MAC9B;AAAA,MACA,QAAQ,IAAI;AAAA,IACd;AAEA,QAAI,CAAC,qBAAqB;AACxB,uBAAiB,GAAG;AACpB,aAAO,KAAK;AAAA,IACd;AAEA,UAAM,UAAkC,MAAM,aAAa;AAAA,MACzD,oBAAoB;AAAA,IACtB;AAEA,QACE,CAAC,WACD,CAAC,IAAI,OAAO,gBACZ,OAAO,QAAQ,cAAc,MAAM,OAAO,IAAI,OAAO,aAAa,GAAG,GACrE;AACA,uBAAiB,GAAG;AACpB,aAAO,KAAK;AAAA,IACd;AAEA,QAAI,OAAO,UAAU,QAAQ,SAAS;AAAA,EACxC,SAAS,OAAO;AACd,YAAQ,MAAM,2BAA2B,KAAK;AAAA,EAChD;AAEA,SAAO,KAAK;AACd;","names":["AuthInformationType"]}
1
+ {"version":3,"sources":["../../../src/middlewares/sessionAuth.middleware.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { OrganizationModel } from '@models/organization.model';\nimport { ProjectModel } from '@models/project.model';\nimport {\n clearOrganizationAuth,\n clearProjectAuth,\n} from '@services/sessionAuth.service';\nimport { getUserBySession as getUserBySessionService } from '@services/user.service';\nimport { Cookies } from '@utils/cookies';\nimport type { Request, Response, NextFunction } from 'express';\nimport jwt from 'jsonwebtoken';\nimport type {\n Organization,\n OrganizationDocument,\n} from '@/types/organization.types';\nimport type { Project, ProjectDocument, Rights } from '@/types/project.types';\nimport type { User } from '@/types/user.types';\n\nexport type ResponseWithInformation<ResBody = any> = Response<\n ResBody,\n {\n user: User | null;\n // Auth Context\n organization: Organization | null;\n project: Project | null;\n authType: 'session' | 'oauth2' | null;\n // Auth Rights - oAuth2 Auth\n organizationRights: Rights | null;\n projectRights: Rights | null;\n dictionaryRights: Rights | null;\n // Auth Rights - Session Auth\n isOrganizationAdmin: boolean | null;\n isProjectAdmin: boolean | null;\n }\n>;\n\nexport const checkUser = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const { [Cookies.JWT_AUTH]: sessionToken } = req.cookies;\n\n res.locals.user = null;\n res.locals.authType = null;\n\n try {\n if (sessionToken) {\n const user = await getUserBySessionService(sessionToken);\n\n if (user) {\n res.locals.user = user.toObject();\n res.locals.authType = 'session';\n }\n }\n } catch (error) {\n console.error('Error fetching session:', error);\n }\n\n return next();\n};\n\nexport const checkOrganization = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const jwtTokenOrganization = req.cookies[Cookies.JWT_ORGANIZATION];\n\n res.locals.organization = null;\n\n try {\n if (!jwtTokenOrganization || jwtTokenOrganization === 'undefined') {\n clearOrganizationAuth(res);\n return next();\n }\n\n const organizationData = jwt.verify(\n jwtTokenOrganization,\n process.env.JWT_TOKEN_SECRET!\n ) as Organization;\n\n if (!organizationData) {\n clearOrganizationAuth(res);\n return next();\n }\n\n const organization: OrganizationDocument | null =\n await OrganizationModel.findById(organizationData._id);\n\n if (!organization) {\n clearOrganizationAuth(res);\n return next();\n }\n\n res.locals.organization = organization.toObject();\n } catch (error) {\n console.error('Error fetching organization:', error);\n }\n\n return next();\n};\n\nexport const checkProject = async (\n req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const jwtTokenProject = req.cookies[Cookies.JWT_PROJECT];\n res.locals.project = null;\n\n try {\n if (!jwtTokenProject || jwtTokenProject === 'undefined') {\n clearProjectAuth(res);\n return next();\n }\n\n const decodedTokenProject = jwt.verify(\n jwtTokenProject,\n process.env.JWT_TOKEN_SECRET!\n ) as Project;\n\n if (!decodedTokenProject) {\n clearProjectAuth(res);\n return next();\n }\n\n const project: ProjectDocument | null = await ProjectModel.findById(\n decodedTokenProject._id\n );\n\n if (\n !project ||\n !res.locals.organization ||\n String(project.organizationId) !== String(res.locals.organization._id)\n ) {\n clearProjectAuth(res);\n return next();\n }\n\n res.locals.project = project.toObject();\n } catch (error) {\n console.error('Error fetching project:', error);\n }\n\n return next();\n};\n\n/**\n * Middleware to check if the user is an admin of the organization or project\n * Sets the following properties in res.locals:\n * - isOrganizationAdmin: boolean\n * - isProjectAdmin: boolean\n */\nexport const checkAdmin = async (\n _req: Request,\n res: ResponseWithInformation,\n next: NextFunction\n): Promise<void> => {\n const { organization, project, user, authType } = res.locals;\n\n if (authType !== 'session') {\n return next();\n }\n\n res.locals.organizationRights = {\n read: true,\n write: false,\n admin: false,\n };\n res.locals.projectRights = {\n read: true,\n write: false,\n admin: false,\n };\n res.locals.projectRights = {\n read: true,\n write: false,\n admin: false,\n };\n\n if (user) {\n if (organization) {\n const isOrganizationAdmin: boolean =\n organization.adminsIds\n .map((id) => String(id))\n .includes(String(user._id)) ?? false;\n\n res.locals.isOrganizationAdmin = isOrganizationAdmin;\n\n res.locals.organizationRights = {\n read: true,\n write: isOrganizationAdmin,\n admin: isOrganizationAdmin,\n };\n }\n\n if (project) {\n const isProjectAdmin: boolean =\n project.adminsIds.map((id) => String(id)).includes(String(user._id)) ??\n false;\n\n res.locals.isProjectAdmin = isProjectAdmin;\n\n res.locals.projectRights = {\n read: true,\n write: isProjectAdmin,\n admin: isProjectAdmin,\n };\n\n res.locals.dictionaryRights = {\n read: true,\n write: true,\n admin: true,\n };\n }\n }\n\n return next();\n};\n"],"mappings":"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","names":[]}
@@ -7,10 +7,9 @@ import {
7
7
  getDictionaryByKey,
8
8
  getDictionariesKeys
9
9
  } from './../controllers/dictionary.controller.mjs';
10
- import { accessControlMiddleWare, AccessRule } from './../utils/accessControl.mjs';
11
10
  import { Router } from "express";
12
11
  const dictionaryRouter = Router();
13
- const baseURL = `${process.env.CLIENT_URL}/api/dictionary`;
12
+ const baseURL = `${process.env.BACKEND_URL}/api/dictionary`;
14
13
  const dictionaryRoutes = {
15
14
  getDictionaries: {
16
15
  urlModel: "/",
@@ -50,86 +49,27 @@ const dictionaryRoutes = {
50
49
  };
51
50
  dictionaryRouter.get(
52
51
  dictionaryRoutes.getDictionaries.urlModel,
53
- accessControlMiddleWare(
54
- [
55
- AccessRule.authenticated,
56
- AccessRule.hasOrganization,
57
- AccessRule.hasProject
58
- ],
59
- AccessRule.admin
60
- ),
61
52
  getDictionaries
62
53
  );
63
54
  dictionaryRouter.get(
64
55
  dictionaryRoutes.getDictionariesKeys.urlModel,
65
- accessControlMiddleWare(
66
- [
67
- AccessRule.authenticated,
68
- AccessRule.hasOrganization,
69
- AccessRule.hasProject
70
- ],
71
- AccessRule.admin
72
- ),
73
56
  getDictionariesKeys
74
57
  );
75
58
  dictionaryRouter.get(
76
59
  dictionaryRoutes.getDictionary.urlModel,
77
- accessControlMiddleWare(
78
- [
79
- AccessRule.authenticated,
80
- AccessRule.hasOrganization,
81
- AccessRule.hasProject
82
- ],
83
- AccessRule.admin
84
- ),
85
60
  getDictionaryByKey
86
61
  );
87
- dictionaryRouter.post(
88
- dictionaryRoutes.addDictionary.urlModel,
89
- accessControlMiddleWare(
90
- [
91
- AccessRule.authenticated,
92
- AccessRule.hasOrganization,
93
- AccessRule.hasProject
94
- ],
95
- AccessRule.admin
96
- ),
97
- addDictionary
98
- );
62
+ dictionaryRouter.post(dictionaryRoutes.addDictionary.urlModel, addDictionary);
99
63
  dictionaryRouter.patch(
100
64
  dictionaryRoutes.pushDictionaries.urlModel,
101
- accessControlMiddleWare(
102
- [
103
- AccessRule.authenticated,
104
- AccessRule.hasOrganization,
105
- AccessRule.hasProject
106
- ],
107
- AccessRule.admin
108
- ),
109
65
  pushDictionaries
110
66
  );
111
67
  dictionaryRouter.put(
112
68
  dictionaryRoutes.updateDictionary.urlModel,
113
- accessControlMiddleWare(
114
- [
115
- AccessRule.authenticated,
116
- AccessRule.hasOrganization,
117
- AccessRule.hasProject
118
- ],
119
- AccessRule.admin
120
- ),
121
69
  updateDictionary
122
70
  );
123
71
  dictionaryRouter.delete(
124
72
  dictionaryRoutes.deleteDictionary.urlModel,
125
- accessControlMiddleWare(
126
- [
127
- AccessRule.authenticated,
128
- AccessRule.hasOrganization,
129
- AccessRule.hasProject
130
- ],
131
- AccessRule.admin
132
- ),
133
73
  deleteDictionary
134
74
  );
135
75
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/dictionary.routes.ts"],"sourcesContent":["import {\n pushDictionaries,\n addDictionary,\n deleteDictionary,\n getDictionaries,\n updateDictionary,\n getDictionaryByKey,\n getDictionariesKeys,\n} from '@controllers/dictionary.controller';\nimport { accessControlMiddleWare, AccessRule } from '@utils/accessControl';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const dictionaryRouter: Router = Router();\n\nconst baseURL = `${process.env.CLIENT_URL}/api/dictionary`;\n\nexport const dictionaryRoutes = {\n getDictionaries: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n getDictionariesKeys: {\n urlModel: '/keys',\n url: `${baseURL}/keys`,\n method: 'GET',\n },\n getDictionary: {\n urlModel: '/:dictionaryKey',\n url: ({ dictionaryKey }: { dictionaryKey: string }) =>\n `${baseURL}/${dictionaryKey}`,\n method: 'GET',\n },\n addDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n pushDictionaries: {\n urlModel: '/',\n url: baseURL,\n method: 'PATCH',\n },\n updateDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'PUT',\n },\n deleteDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n} satisfies Routes;\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionaries.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n getDictionaries\n);\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionariesKeys.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n getDictionariesKeys\n);\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionary.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n getDictionaryByKey\n);\n\ndictionaryRouter.post(\n dictionaryRoutes.addDictionary.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n addDictionary\n);\ndictionaryRouter.patch(\n dictionaryRoutes.pushDictionaries.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n pushDictionaries\n);\ndictionaryRouter.put(\n dictionaryRoutes.updateDictionary.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n updateDictionary\n);\ndictionaryRouter.delete(\n dictionaryRoutes.deleteDictionary.urlModel,\n accessControlMiddleWare(\n [\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ],\n AccessRule.admin\n ),\n deleteDictionary\n);\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB,kBAAkB;AACpD,SAAS,cAAc;AAGhB,MAAM,mBAA2B,OAAO;AAE/C,MAAM,UAAU,GAAG,QAAQ,IAAI,UAAU;AAElC,MAAM,mBAAmB;AAAA,EAC9B,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,qBAAqB;AAAA,IACnB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,cAAc,MACpB,GAAG,OAAO,IAAI,aAAa;AAAA,IAC7B,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,gBAAgB;AAAA,EACjC;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,oBAAoB;AAAA,EACrC;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,cAAc;AAAA,EAC/B;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,cAAc;AAAA,EAC/B;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AACA,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AACA,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;AACA,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AAAA,IACE;AAAA,MACE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AAAA,IACA,WAAW;AAAA,EACb;AAAA,EACA;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/routes/dictionary.routes.ts"],"sourcesContent":["import {\n pushDictionaries,\n addDictionary,\n deleteDictionary,\n getDictionaries,\n updateDictionary,\n getDictionaryByKey,\n getDictionariesKeys,\n} from '@controllers/dictionary.controller';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const dictionaryRouter: Router = Router();\n\nconst baseURL = `${process.env.BACKEND_URL}/api/dictionary`;\n\nexport const dictionaryRoutes = {\n getDictionaries: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n getDictionariesKeys: {\n urlModel: '/keys',\n url: `${baseURL}/keys`,\n method: 'GET',\n },\n getDictionary: {\n urlModel: '/:dictionaryKey',\n url: ({ dictionaryKey }: { dictionaryKey: string }) =>\n `${baseURL}/${dictionaryKey}`,\n method: 'GET',\n },\n addDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n pushDictionaries: {\n urlModel: '/',\n url: baseURL,\n method: 'PATCH',\n },\n updateDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'PUT',\n },\n deleteDictionary: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n} satisfies Routes;\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionaries.urlModel,\n getDictionaries\n);\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionariesKeys.urlModel,\n getDictionariesKeys\n);\n\ndictionaryRouter.get(\n dictionaryRoutes.getDictionary.urlModel,\n getDictionaryByKey\n);\n\ndictionaryRouter.post(dictionaryRoutes.addDictionary.urlModel, addDictionary);\ndictionaryRouter.patch(\n dictionaryRoutes.pushDictionaries.urlModel,\n pushDictionaries\n);\ndictionaryRouter.put(\n dictionaryRoutes.updateDictionary.urlModel,\n updateDictionary\n);\ndictionaryRouter.delete(\n dictionaryRoutes.deleteDictionary.urlModel,\n deleteDictionary\n);\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AAGhB,MAAM,mBAA2B,OAAO;AAE/C,MAAM,UAAU,GAAG,QAAQ,IAAI,WAAW;AAEnC,MAAM,mBAAmB;AAAA,EAC9B,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,qBAAqB;AAAA,IACnB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,cAAc,MACpB,GAAG,OAAO,IAAI,aAAa;AAAA,IAC7B,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,gBAAgB;AAAA,EACjC;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,oBAAoB;AAAA,EACrC;AACF;AAEA,iBAAiB;AAAA,EACf,iBAAiB,cAAc;AAAA,EAC/B;AACF;AAEA,iBAAiB,KAAK,iBAAiB,cAAc,UAAU,aAAa;AAC5E,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AACF;AACA,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AACF;AACA,iBAAiB;AAAA,EACf,iBAAiB,iBAAiB;AAAA,EAClC;AACF;","names":[]}
@@ -8,10 +8,9 @@ import {
8
8
  unselectOrganization,
9
9
  addOrganizationMember
10
10
  } from './../controllers/organization.controller.mjs';
11
- import { accessControlMiddleWare, AccessRule } from './../utils/accessControl.mjs';
12
11
  import { Router } from "express";
13
12
  const organizationRouter = Router();
14
- const baseURL = `${process.env.CLIENT_URL}/api/organization`;
13
+ const baseURL = `${process.env.BACKEND_URL}/api/organization`;
15
14
  const organizationRoutes = {
16
15
  getOrganizations: {
17
16
  urlModel: "/",
@@ -56,57 +55,34 @@ const organizationRoutes = {
56
55
  };
57
56
  organizationRouter.get(
58
57
  organizationRoutes.getOrganizations.urlModel,
59
- accessControlMiddleWare(AccessRule.authenticated),
60
58
  getOrganizations
61
59
  );
62
60
  organizationRouter.post(
63
61
  organizationRoutes.addOrganization.urlModel,
64
- accessControlMiddleWare(AccessRule.authenticated),
65
62
  addOrganization
66
63
  );
67
64
  organizationRouter.put(
68
65
  organizationRoutes.updateOrganization.urlModel,
69
- accessControlMiddleWare([
70
- AccessRule.authenticated,
71
- AccessRule.hasOrganization
72
- ]),
73
66
  updateOrganization
74
67
  );
75
68
  organizationRouter.put(
76
69
  organizationRoutes.updateOrganizationMembers.urlModel,
77
- accessControlMiddleWare([
78
- AccessRule.authenticated,
79
- AccessRule.hasOrganization
80
- ]),
81
70
  updateOrganizationMembers
82
71
  );
83
72
  organizationRouter.post(
84
73
  organizationRoutes.addOrganizationMember.urlModel,
85
- accessControlMiddleWare([
86
- AccessRule.authenticated,
87
- AccessRule.hasOrganization
88
- ]),
89
74
  addOrganizationMember
90
75
  );
91
76
  organizationRouter.delete(
92
77
  organizationRoutes.deleteOrganization.urlModel,
93
- accessControlMiddleWare([
94
- AccessRule.authenticated,
95
- AccessRule.hasOrganization
96
- ]),
97
78
  deleteOrganization
98
79
  );
99
80
  organizationRouter.put(
100
81
  organizationRoutes.selectOrganization.urlModel,
101
- accessControlMiddleWare([AccessRule.authenticated]),
102
82
  selectOrganization
103
83
  );
104
84
  organizationRouter.post(
105
85
  organizationRoutes.unselectOrganization.urlModel,
106
- accessControlMiddleWare([
107
- AccessRule.authenticated,
108
- AccessRule.hasOrganization
109
- ]),
110
86
  unselectOrganization
111
87
  );
112
88
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/organization.routes.ts"],"sourcesContent":["import {\n addOrganization,\n deleteOrganization,\n selectOrganization,\n getOrganizations,\n updateOrganization,\n updateOrganizationMembers,\n unselectOrganization,\n addOrganizationMember,\n} from '@controllers/organization.controller';\nimport { accessControlMiddleWare, AccessRule } from '@utils/accessControl';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const organizationRouter: Router = Router();\n\nconst baseURL = `${process.env.CLIENT_URL}/api/organization`;\n\nexport const organizationRoutes = {\n getOrganizations: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n addOrganization: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n updateOrganization: {\n urlModel: '/',\n url: baseURL,\n\n method: 'PUT',\n },\n updateOrganizationMembers: {\n urlModel: '/members',\n url: `${baseURL}/members`,\n method: 'PUT',\n },\n addOrganizationMember: {\n urlModel: '/member',\n url: `${baseURL}/member`,\n method: 'POST',\n },\n deleteOrganization: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n selectOrganization: {\n urlModel: '/:organizationId',\n url: ({ organizationId }: { organizationId: string }) =>\n `${baseURL}/${organizationId}`,\n method: 'PUT',\n },\n unselectOrganization: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n} satisfies Routes;\n\norganizationRouter.get(\n organizationRoutes.getOrganizations.urlModel,\n accessControlMiddleWare(AccessRule.authenticated),\n getOrganizations\n);\n\norganizationRouter.post(\n organizationRoutes.addOrganization.urlModel,\n accessControlMiddleWare(AccessRule.authenticated),\n addOrganization\n);\norganizationRouter.put(\n organizationRoutes.updateOrganization.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n updateOrganization\n);\norganizationRouter.put(\n organizationRoutes.updateOrganizationMembers.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n updateOrganizationMembers\n);\norganizationRouter.post(\n organizationRoutes.addOrganizationMember.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n addOrganizationMember\n);\norganizationRouter.delete(\n organizationRoutes.deleteOrganization.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n deleteOrganization\n);\norganizationRouter.put(\n organizationRoutes.selectOrganization.urlModel,\n accessControlMiddleWare([AccessRule.authenticated]),\n selectOrganization\n);\n\norganizationRouter.post(\n organizationRoutes.unselectOrganization.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n unselectOrganization\n);\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB,kBAAkB;AACpD,SAAS,cAAc;AAGhB,MAAM,qBAA6B,OAAO;AAEjD,MAAM,UAAU,GAAG,QAAQ,IAAI,UAAU;AAElC,MAAM,qBAAqB;AAAA,EAChC,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK;AAAA,IAEL,QAAQ;AAAA,EACV;AAAA,EACA,2BAA2B;AAAA,IACzB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,uBAAuB;AAAA,IACrB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,eAAe,MACrB,GAAG,OAAO,IAAI,cAAc;AAAA,IAC9B,QAAQ;AAAA,EACV;AAAA,EACA,sBAAsB;AAAA,IACpB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,iBAAiB;AAAA,EACpC,wBAAwB,WAAW,aAAa;AAAA,EAChD;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,gBAAgB;AAAA,EACnC,wBAAwB,WAAW,aAAa;AAAA,EAChD;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC,wBAAwB;AAAA,IACtB,WAAW;AAAA,IACX,WAAW;AAAA,EACb,CAAC;AAAA,EACD;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,0BAA0B;AAAA,EAC7C,wBAAwB;AAAA,IACtB,WAAW;AAAA,IACX,WAAW;AAAA,EACb,CAAC;AAAA,EACD;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,sBAAsB;AAAA,EACzC,wBAAwB;AAAA,IACtB,WAAW;AAAA,IACX,WAAW;AAAA,EACb,CAAC;AAAA,EACD;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC,wBAAwB;AAAA,IACtB,WAAW;AAAA,IACX,WAAW;AAAA,EACb,CAAC;AAAA,EACD;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC,wBAAwB,CAAC,WAAW,aAAa,CAAC;AAAA,EAClD;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,qBAAqB;AAAA,EACxC,wBAAwB;AAAA,IACtB,WAAW;AAAA,IACX,WAAW;AAAA,EACb,CAAC;AAAA,EACD;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/routes/organization.routes.ts"],"sourcesContent":["import {\n addOrganization,\n deleteOrganization,\n selectOrganization,\n getOrganizations,\n updateOrganization,\n updateOrganizationMembers,\n unselectOrganization,\n addOrganizationMember,\n} from '@controllers/organization.controller';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const organizationRouter: Router = Router();\n\nconst baseURL = `${process.env.BACKEND_URL}/api/organization`;\n\nexport const organizationRoutes = {\n getOrganizations: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n addOrganization: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n updateOrganization: {\n urlModel: '/',\n url: baseURL,\n\n method: 'PUT',\n },\n updateOrganizationMembers: {\n urlModel: '/members',\n url: `${baseURL}/members`,\n method: 'PUT',\n },\n addOrganizationMember: {\n urlModel: '/member',\n url: `${baseURL}/member`,\n method: 'POST',\n },\n deleteOrganization: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n selectOrganization: {\n urlModel: '/:organizationId',\n url: ({ organizationId }: { organizationId: string }) =>\n `${baseURL}/${organizationId}`,\n method: 'PUT',\n },\n unselectOrganization: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n} satisfies Routes;\n\norganizationRouter.get(\n organizationRoutes.getOrganizations.urlModel,\n getOrganizations\n);\n\norganizationRouter.post(\n organizationRoutes.addOrganization.urlModel,\n addOrganization\n);\norganizationRouter.put(\n organizationRoutes.updateOrganization.urlModel,\n updateOrganization\n);\norganizationRouter.put(\n organizationRoutes.updateOrganizationMembers.urlModel,\n updateOrganizationMembers\n);\norganizationRouter.post(\n organizationRoutes.addOrganizationMember.urlModel,\n addOrganizationMember\n);\norganizationRouter.delete(\n organizationRoutes.deleteOrganization.urlModel,\n deleteOrganization\n);\norganizationRouter.put(\n organizationRoutes.selectOrganization.urlModel,\n selectOrganization\n);\n\norganizationRouter.post(\n organizationRoutes.unselectOrganization.urlModel,\n unselectOrganization\n);\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AAGhB,MAAM,qBAA6B,OAAO;AAEjD,MAAM,UAAU,GAAG,QAAQ,IAAI,WAAW;AAEnC,MAAM,qBAAqB;AAAA,EAChC,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK;AAAA,IAEL,QAAQ;AAAA,EACV;AAAA,EACA,2BAA2B;AAAA,IACzB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,uBAAuB;AAAA,IACrB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,eAAe,MACrB,GAAG,OAAO,IAAI,cAAc;AAAA,IAC9B,QAAQ;AAAA,EACV;AAAA,EACA,sBAAsB;AAAA,IACpB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,iBAAiB;AAAA,EACpC;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,gBAAgB;AAAA,EACnC;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,0BAA0B;AAAA,EAC7C;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,sBAAsB;AAAA,EACzC;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC;AACF;AACA,mBAAmB;AAAA,EACjB,mBAAmB,mBAAmB;AAAA,EACtC;AACF;AAEA,mBAAmB;AAAA,EACjB,mBAAmB,qBAAqB;AAAA,EACxC;AACF;","names":[]}
@@ -12,10 +12,9 @@ import {
12
12
  deleteAccessKey,
13
13
  refreshAccessKey
14
14
  } from './../controllers/projectAccessKey.controller.mjs';
15
- import { accessControlMiddleWare, AccessRule } from './../utils/accessControl.mjs';
16
15
  import { Router } from "express";
17
16
  const projectRouter = Router();
18
- const baseURL = `${process.env.CLIENT_URL}/api/project`;
17
+ const baseURL = `${process.env.BACKEND_URL}/api/project`;
19
18
  const projectRoutes = {
20
19
  getProjects: {
21
20
  urlModel: "/",
@@ -68,93 +67,19 @@ const projectRoutes = {
68
67
  method: "DELETE"
69
68
  }
70
69
  };
71
- projectRouter.get(
72
- projectRoutes.getProjects.urlModel,
73
- accessControlMiddleWare([
74
- AccessRule.authenticated,
75
- AccessRule.hasOrganization
76
- ]),
77
- getProjects
78
- );
79
- projectRouter.post(
80
- projectRoutes.addProject.urlModel,
81
- accessControlMiddleWare([
82
- AccessRule.authenticated,
83
- AccessRule.hasOrganization
84
- ]),
85
- addProject
86
- );
87
- projectRouter.put(
88
- projectRoutes.updateProject.urlModel,
89
- accessControlMiddleWare([
90
- AccessRule.authenticated,
91
- AccessRule.hasOrganization,
92
- AccessRule.hasProject
93
- ]),
94
- updateProject
95
- );
70
+ projectRouter.get(projectRoutes.getProjects.urlModel, getProjects);
71
+ projectRouter.post(projectRoutes.addProject.urlModel, addProject);
72
+ projectRouter.put(projectRoutes.updateProject.urlModel, updateProject);
96
73
  projectRouter.put(
97
74
  projectRoutes.updateProjectMembers.urlModel,
98
- accessControlMiddleWare([
99
- AccessRule.authenticated,
100
- AccessRule.hasOrganization,
101
- AccessRule.hasProject
102
- ]),
103
75
  updateProjectMembers
104
76
  );
105
- projectRouter.delete(
106
- projectRoutes.deleteProject.urlModel,
107
- accessControlMiddleWare([
108
- AccessRule.authenticated,
109
- AccessRule.hasOrganization,
110
- AccessRule.hasProject
111
- ]),
112
- deleteProject
113
- );
114
- projectRouter.post(
115
- projectRoutes.addNewAccessKey.urlModel,
116
- accessControlMiddleWare([
117
- AccessRule.authenticated,
118
- AccessRule.hasOrganization,
119
- AccessRule.hasProject
120
- ]),
121
- addNewAccessKey
122
- );
123
- projectRouter.patch(
124
- projectRoutes.refreshAccessKey.urlModel,
125
- accessControlMiddleWare([
126
- AccessRule.authenticated,
127
- AccessRule.hasOrganization,
128
- AccessRule.hasProject
129
- ]),
130
- refreshAccessKey
131
- );
132
- projectRouter.delete(
133
- projectRoutes.deleteAccessKey.urlModel,
134
- accessControlMiddleWare([
135
- AccessRule.authenticated,
136
- AccessRule.hasOrganization,
137
- AccessRule.hasProject
138
- ]),
139
- deleteAccessKey
140
- );
141
- projectRouter.post(
142
- projectRoutes.unselectProject.urlModel,
143
- accessControlMiddleWare([
144
- AccessRule.authenticated,
145
- AccessRule.hasOrganization,
146
- AccessRule.hasProject
147
- ]),
148
- unselectProject
149
- );
150
- projectRouter.put(
151
- projectRoutes.selectProject.urlModel,
152
- accessControlMiddleWare([
153
- AccessRule.authenticated,
154
- AccessRule.hasOrganization
155
- ]),
156
- selectProject
157
- );
77
+ projectRouter.delete(projectRoutes.deleteProject.urlModel, deleteProject);
78
+ projectRouter.post(projectRoutes.addNewAccessKey.urlModel, addNewAccessKey);
79
+ projectRouter.patch(projectRoutes.refreshAccessKey.urlModel, refreshAccessKey);
80
+ projectRouter.delete(projectRoutes.deleteAccessKey.urlModel, deleteAccessKey);
81
+ projectRouter.post(projectRoutes.unselectProject.urlModel, unselectProject);
82
+ projectRouter.put(projectRoutes.selectProject.urlModel, selectProject);
158
83
  export {
159
84
  projectRouter,
160
85
  projectRoutes
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/project.routes.ts"],"sourcesContent":["import {\n addProject,\n deleteProject,\n getProjects,\n updateProject,\n selectProject,\n unselectProject,\n updateProjectMembers,\n} from '@controllers/project.controller';\nimport {\n addNewAccessKey,\n deleteAccessKey,\n refreshAccessKey,\n} from '@controllers/projectAccessKey.controller';\nimport { accessControlMiddleWare, AccessRule } from '@utils/accessControl';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const projectRouter: Router = Router();\n\nconst baseURL = `${process.env.CLIENT_URL}/api/project`;\n\nexport const projectRoutes = {\n getProjects: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n addProject: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n updateProject: {\n urlModel: '/',\n url: baseURL,\n method: 'PUT',\n },\n updateProjectMembers: {\n urlModel: '/members',\n url: `${process.env.CLIENT_URL}/api/members`,\n method: 'PUT',\n },\n deleteProject: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n selectProject: {\n urlModel: '/:projectId',\n url: ({ projectId }: { projectId: string }) => `${baseURL}/${projectId}`,\n method: 'PUT',\n },\n unselectProject: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n addNewAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'POST',\n },\n refreshAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'PATCH',\n },\n deleteAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'DELETE',\n },\n} satisfies Routes;\n\nprojectRouter.get(\n projectRoutes.getProjects.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n getProjects\n);\n\nprojectRouter.post(\n projectRoutes.addProject.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n addProject\n);\nprojectRouter.put(\n projectRoutes.updateProject.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n updateProject\n);\nprojectRouter.put(\n projectRoutes.updateProjectMembers.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n updateProjectMembers\n);\nprojectRouter.delete(\n projectRoutes.deleteProject.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n deleteProject\n);\n\nprojectRouter.post(\n projectRoutes.addNewAccessKey.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n addNewAccessKey\n);\n\nprojectRouter.patch(\n projectRoutes.refreshAccessKey.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n refreshAccessKey\n);\n\nprojectRouter.delete(\n projectRoutes.deleteAccessKey.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n deleteAccessKey\n);\n\nprojectRouter.post(\n projectRoutes.unselectProject.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n AccessRule.hasProject,\n ]),\n unselectProject\n);\n\nprojectRouter.put(\n projectRoutes.selectProject.urlModel,\n accessControlMiddleWare([\n AccessRule.authenticated,\n AccessRule.hasOrganization,\n ]),\n selectProject\n);\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/routes/project.routes.ts"],"sourcesContent":["import {\n addProject,\n deleteProject,\n getProjects,\n updateProject,\n selectProject,\n unselectProject,\n updateProjectMembers,\n} from '@controllers/project.controller';\nimport {\n addNewAccessKey,\n deleteAccessKey,\n refreshAccessKey,\n} from '@controllers/projectAccessKey.controller';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const projectRouter: Router = Router();\n\nconst baseURL = `${process.env.BACKEND_URL}/api/project`;\n\nexport const projectRoutes = {\n getProjects: {\n urlModel: '/',\n url: baseURL,\n method: 'GET',\n },\n addProject: {\n urlModel: '/',\n url: baseURL,\n method: 'POST',\n },\n updateProject: {\n urlModel: '/',\n url: baseURL,\n method: 'PUT',\n },\n updateProjectMembers: {\n urlModel: '/members',\n url: `${process.env.CLIENT_URL}/api/members`,\n method: 'PUT',\n },\n deleteProject: {\n urlModel: '/',\n url: baseURL,\n method: 'DELETE',\n },\n selectProject: {\n urlModel: '/:projectId',\n url: ({ projectId }: { projectId: string }) => `${baseURL}/${projectId}`,\n method: 'PUT',\n },\n unselectProject: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n addNewAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'POST',\n },\n refreshAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'PATCH',\n },\n deleteAccessKey: {\n urlModel: '/access_key',\n url: `${baseURL}/access_key`,\n method: 'DELETE',\n },\n} satisfies Routes;\n\nprojectRouter.get(projectRoutes.getProjects.urlModel, getProjects);\n\nprojectRouter.post(projectRoutes.addProject.urlModel, addProject);\nprojectRouter.put(projectRoutes.updateProject.urlModel, updateProject);\nprojectRouter.put(\n projectRoutes.updateProjectMembers.urlModel,\n updateProjectMembers\n);\nprojectRouter.delete(projectRoutes.deleteProject.urlModel, deleteProject);\n\nprojectRouter.post(projectRoutes.addNewAccessKey.urlModel, addNewAccessKey);\n\nprojectRouter.patch(projectRoutes.refreshAccessKey.urlModel, refreshAccessKey);\n\nprojectRouter.delete(projectRoutes.deleteAccessKey.urlModel, deleteAccessKey);\n\nprojectRouter.post(projectRoutes.unselectProject.urlModel, unselectProject);\n\nprojectRouter.put(projectRoutes.selectProject.urlModel, selectProject);\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AAGhB,MAAM,gBAAwB,OAAO;AAE5C,MAAM,UAAU,GAAG,QAAQ,IAAI,WAAW;AAEnC,MAAM,gBAAgB;AAAA,EAC3B,aAAa;AAAA,IACX,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,YAAY;AAAA,IACV,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,sBAAsB;AAAA,IACpB,UAAU;AAAA,IACV,KAAK,GAAG,QAAQ,IAAI,UAAU;AAAA,IAC9B,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK;AAAA,IACL,QAAQ;AAAA,EACV;AAAA,EACA,eAAe;AAAA,IACb,UAAU;AAAA,IACV,KAAK,CAAC,EAAE,UAAU,MAA6B,GAAG,OAAO,IAAI,SAAS;AAAA,IACtE,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,kBAAkB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AACF;AAEA,cAAc,IAAI,cAAc,YAAY,UAAU,WAAW;AAEjE,cAAc,KAAK,cAAc,WAAW,UAAU,UAAU;AAChE,cAAc,IAAI,cAAc,cAAc,UAAU,aAAa;AACrE,cAAc;AAAA,EACZ,cAAc,qBAAqB;AAAA,EACnC;AACF;AACA,cAAc,OAAO,cAAc,cAAc,UAAU,aAAa;AAExE,cAAc,KAAK,cAAc,gBAAgB,UAAU,eAAe;AAE1E,cAAc,MAAM,cAAc,iBAAiB,UAAU,gBAAgB;AAE7E,cAAc,OAAO,cAAc,gBAAgB,UAAU,eAAe;AAE5E,cAAc,KAAK,cAAc,gBAAgB,UAAU,eAAe;AAE1E,cAAc,IAAI,cAAc,cAAc,UAAU,aAAa;","names":[]}
@@ -9,12 +9,13 @@ import {
9
9
  githubCallback,
10
10
  googleCallback,
11
11
  githubLoginQuery,
12
- googleLoginQuery
12
+ googleLoginQuery,
13
+ verifyEmailStatusSSE,
14
+ checkIfUserHasPassword
13
15
  } from './../controllers/sessionAuth.controller.mjs';
14
- import { accessControlMiddleWare, AccessRule } from './../utils/accessControl.mjs';
15
16
  import { Router } from "express";
16
17
  const sessionAuthRouter = Router();
17
- const baseURL = `${process.env.CLIENT_URL}/api/auth`;
18
+ const baseURL = `${process.env.BACKEND_URL}/api/auth`;
18
19
  const sessionAuthRoutes = {
19
20
  registerEmailPassword: {
20
21
  urlModel: "/register",
@@ -46,10 +47,24 @@ const sessionAuthRoutes = {
46
47
  url: ({ userId, secret }) => `${baseURL}/${userId}/password/reset/${secret}`,
47
48
  method: "PUT"
48
49
  },
50
+ checkIfUserHasPassword: {
51
+ urlModel: "/password/has",
52
+ url: `${baseURL}/password/has`,
53
+ method: "GET"
54
+ },
49
55
  validEmail: {
50
56
  urlModel: "/:userId/active/:secret",
51
- url: ({ userId, secret }) => `${baseURL}/${userId}/active/${secret}`,
52
- method: "PUT"
57
+ url: ({
58
+ userId,
59
+ secret,
60
+ callBack_url
61
+ }) => `${baseURL}/${userId}/active/${secret}${callBack_url ? `?callBack_url=${callBack_url}` : ""}`,
62
+ method: "GET"
63
+ },
64
+ verifyEmailStatusSSE: {
65
+ urlModel: "/verify-email-status/:userId",
66
+ url: ({ userId }) => `${baseURL}/verify-email-status/${userId}`,
67
+ method: "GET"
53
68
  },
54
69
  githubLoginQuery: {
55
70
  urlModel: "/login/github",
@@ -74,57 +89,45 @@ const sessionAuthRoutes = {
74
89
  };
75
90
  sessionAuthRouter.post(
76
91
  sessionAuthRoutes.registerEmailPassword.urlModel,
77
- accessControlMiddleWare(AccessRule.noneAuthenticated),
78
92
  registerEmailPassword
79
93
  );
80
94
  sessionAuthRouter.post(
81
95
  sessionAuthRoutes.loginEmailPassword.urlModel,
82
- accessControlMiddleWare(AccessRule.noneAuthenticated),
83
96
  loginEmailPassword
84
97
  );
85
- sessionAuthRouter.post(
86
- sessionAuthRoutes.logOut.urlModel,
87
- accessControlMiddleWare(AccessRule.authenticated),
88
- logOut
89
- );
98
+ sessionAuthRouter.post(sessionAuthRoutes.logOut.urlModel, logOut);
90
99
  sessionAuthRouter.put(
91
100
  sessionAuthRoutes.updatePassword.urlModel,
92
- accessControlMiddleWare(AccessRule.authenticated),
93
101
  updatePassword
94
102
  );
95
103
  sessionAuthRouter.post(
96
104
  sessionAuthRoutes.askResetPassword.urlModel,
97
- accessControlMiddleWare(AccessRule.noneAuthenticated),
98
105
  askResetPassword
99
106
  );
100
- sessionAuthRouter.put(
101
- sessionAuthRoutes.resetPassword.urlModel,
102
- accessControlMiddleWare(AccessRule.noneAuthenticated),
103
- resetPassword
107
+ sessionAuthRouter.put(sessionAuthRoutes.resetPassword.urlModel, resetPassword);
108
+ sessionAuthRouter.get(
109
+ sessionAuthRoutes.checkIfUserHasPassword.urlModel,
110
+ checkIfUserHasPassword
104
111
  );
105
- sessionAuthRouter.put(
106
- sessionAuthRoutes.validEmail.urlModel,
107
- accessControlMiddleWare(AccessRule.noneAuthenticated, AccessRule.admin),
108
- validEmail
112
+ sessionAuthRouter.get(sessionAuthRoutes.validEmail.urlModel, validEmail);
113
+ sessionAuthRouter.get(
114
+ sessionAuthRoutes.verifyEmailStatusSSE.urlModel,
115
+ verifyEmailStatusSSE
109
116
  );
110
117
  sessionAuthRouter.get(
111
118
  sessionAuthRoutes.githubLoginQuery.urlModel,
112
- accessControlMiddleWare(AccessRule.noneAuthenticated),
113
119
  githubLoginQuery
114
120
  );
115
121
  sessionAuthRouter.get(
116
122
  sessionAuthRoutes.githubCallback.urlModel,
117
- accessControlMiddleWare(AccessRule.noneAuthenticated),
118
123
  githubCallback
119
124
  );
120
125
  sessionAuthRouter.get(
121
126
  sessionAuthRoutes.googleLoginQuery.urlModel,
122
- accessControlMiddleWare(AccessRule.noneAuthenticated),
123
127
  googleLoginQuery
124
128
  );
125
129
  sessionAuthRouter.get(
126
130
  sessionAuthRoutes.googleCallback.urlModel,
127
- accessControlMiddleWare(AccessRule.noneAuthenticated),
128
131
  googleCallback
129
132
  );
130
133
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/sessionAuth.routes.ts"],"sourcesContent":["import {\n registerEmailPassword,\n loginEmailPassword,\n logOut,\n updatePassword,\n validEmail,\n askResetPassword,\n resetPassword,\n githubCallback,\n googleCallback,\n githubLoginQuery,\n googleLoginQuery,\n} from '@controllers/sessionAuth.controller';\nimport { accessControlMiddleWare, AccessRule } from '@utils/accessControl';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const sessionAuthRouter: Router = Router();\n\nconst baseURL = `${process.env.CLIENT_URL}/api/auth`;\n\nexport const sessionAuthRoutes = {\n registerEmailPassword: {\n urlModel: '/register',\n url: `${baseURL}/register`,\n method: 'POST',\n },\n loginEmailPassword: {\n urlModel: '/login',\n url: `${baseURL}/login`,\n method: 'POST',\n },\n logOut: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n updatePassword: {\n urlModel: '/password',\n url: `${baseURL}/password`,\n method: 'PUT',\n },\n askResetPassword: {\n urlModel: '/password/reset',\n url: `${baseURL}/password/reset`,\n method: 'POST',\n },\n resetPassword: {\n urlModel: '/:userId/password/reset/:secret',\n url: ({ userId, secret }: { userId: string; secret: string }) =>\n `${baseURL}/${userId}/password/reset/${secret}`,\n method: 'PUT',\n },\n validEmail: {\n urlModel: '/:userId/active/:secret',\n url: ({ userId, secret }: { userId: string; secret: string }) =>\n `${baseURL}/${userId}/active/${secret}`,\n method: 'PUT',\n },\n githubLoginQuery: {\n urlModel: '/login/github',\n url: `${baseURL}/login/github`,\n method: 'GET',\n },\n githubCallback: {\n urlModel: '/callback/github',\n url: `${baseURL}/callback/github`,\n method: 'GET',\n },\n googleLoginQuery: {\n urlModel: '/login/google',\n url: `${baseURL}/login/google`,\n method: 'GET',\n },\n googleCallback: {\n urlModel: '/callback/google',\n url: `${baseURL}/callback/google`,\n method: 'GET',\n },\n} satisfies Routes;\n\n// Authentication\nsessionAuthRouter.post(\n sessionAuthRoutes.registerEmailPassword.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n registerEmailPassword\n);\nsessionAuthRouter.post(\n sessionAuthRoutes.loginEmailPassword.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n loginEmailPassword\n);\nsessionAuthRouter.post(\n sessionAuthRoutes.logOut.urlModel,\n accessControlMiddleWare(AccessRule.authenticated),\n logOut\n);\n\n// Password\nsessionAuthRouter.put(\n sessionAuthRoutes.updatePassword.urlModel,\n accessControlMiddleWare(AccessRule.authenticated),\n updatePassword\n);\nsessionAuthRouter.post(\n sessionAuthRoutes.askResetPassword.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n askResetPassword\n);\nsessionAuthRouter.put(\n sessionAuthRoutes.resetPassword.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n resetPassword\n);\n\n// Email validation\nsessionAuthRouter.put(\n sessionAuthRoutes.validEmail.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated, AccessRule.admin),\n validEmail\n);\n\n// Github auth\nsessionAuthRouter.get(\n sessionAuthRoutes.githubLoginQuery.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n githubLoginQuery\n);\nsessionAuthRouter.get(\n sessionAuthRoutes.githubCallback.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n githubCallback\n);\n\n// Google auth\nsessionAuthRouter.get(\n sessionAuthRoutes.googleLoginQuery.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n googleLoginQuery\n);\nsessionAuthRouter.get(\n sessionAuthRoutes.googleCallback.urlModel,\n accessControlMiddleWare(AccessRule.noneAuthenticated),\n googleCallback\n);\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/routes/sessionAuth.routes.ts"],"sourcesContent":["import {\n registerEmailPassword,\n loginEmailPassword,\n logOut,\n updatePassword,\n validEmail,\n askResetPassword,\n resetPassword,\n githubCallback,\n googleCallback,\n githubLoginQuery,\n googleLoginQuery,\n verifyEmailStatusSSE,\n checkIfUserHasPassword,\n} from '@controllers/sessionAuth.controller';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const sessionAuthRouter: Router = Router();\n\nconst baseURL = `${process.env.BACKEND_URL}/api/auth`;\n\nexport const sessionAuthRoutes = {\n registerEmailPassword: {\n urlModel: '/register',\n url: `${baseURL}/register`,\n method: 'POST',\n },\n loginEmailPassword: {\n urlModel: '/login',\n url: `${baseURL}/login`,\n method: 'POST',\n },\n logOut: {\n urlModel: '/logout',\n url: `${baseURL}/logout`,\n method: 'POST',\n },\n updatePassword: {\n urlModel: '/password',\n url: `${baseURL}/password`,\n method: 'PUT',\n },\n askResetPassword: {\n urlModel: '/password/reset',\n url: `${baseURL}/password/reset`,\n method: 'POST',\n },\n resetPassword: {\n urlModel: '/:userId/password/reset/:secret',\n url: ({ userId, secret }: { userId: string; secret: string }) =>\n `${baseURL}/${userId}/password/reset/${secret}`,\n method: 'PUT',\n },\n checkIfUserHasPassword: {\n urlModel: '/password/has',\n url: `${baseURL}/password/has`,\n method: 'GET',\n },\n validEmail: {\n urlModel: '/:userId/active/:secret',\n url: ({\n userId,\n secret,\n callBack_url,\n }: {\n userId: string;\n secret: string;\n callBack_url?: string;\n }) =>\n `${baseURL}/${userId}/active/${secret}${\n callBack_url ? `?callBack_url=${callBack_url}` : ''\n }`,\n method: 'GET',\n },\n verifyEmailStatusSSE: {\n urlModel: '/verify-email-status/:userId',\n url: ({ userId }: { userId: string }) =>\n `${baseURL}/verify-email-status/${userId}`,\n method: 'GET',\n },\n githubLoginQuery: {\n urlModel: '/login/github',\n url: `${baseURL}/login/github`,\n method: 'GET',\n },\n githubCallback: {\n urlModel: '/callback/github',\n url: `${baseURL}/callback/github`,\n method: 'GET',\n },\n googleLoginQuery: {\n urlModel: '/login/google',\n url: `${baseURL}/login/google`,\n method: 'GET',\n },\n googleCallback: {\n urlModel: '/callback/google',\n url: `${baseURL}/callback/google`,\n method: 'GET',\n },\n} satisfies Routes;\n\n// Authentication\nsessionAuthRouter.post(\n sessionAuthRoutes.registerEmailPassword.urlModel,\n registerEmailPassword\n);\nsessionAuthRouter.post(\n sessionAuthRoutes.loginEmailPassword.urlModel,\n loginEmailPassword\n);\nsessionAuthRouter.post(sessionAuthRoutes.logOut.urlModel, logOut);\n\n// Password\nsessionAuthRouter.put(\n sessionAuthRoutes.updatePassword.urlModel,\n updatePassword\n);\nsessionAuthRouter.post(\n sessionAuthRoutes.askResetPassword.urlModel,\n askResetPassword\n);\nsessionAuthRouter.put(sessionAuthRoutes.resetPassword.urlModel, resetPassword);\n\nsessionAuthRouter.get(\n sessionAuthRoutes.checkIfUserHasPassword.urlModel,\n checkIfUserHasPassword\n);\n\n// Email validation\nsessionAuthRouter.get(sessionAuthRoutes.validEmail.urlModel, validEmail);\n\n// Verify email status\nsessionAuthRouter.get(\n sessionAuthRoutes.verifyEmailStatusSSE.urlModel,\n verifyEmailStatusSSE\n);\n\n// Github auth\nsessionAuthRouter.get(\n sessionAuthRoutes.githubLoginQuery.urlModel,\n githubLoginQuery\n);\nsessionAuthRouter.get(\n sessionAuthRoutes.githubCallback.urlModel,\n githubCallback\n);\n\n// Google auth\nsessionAuthRouter.get(\n sessionAuthRoutes.googleLoginQuery.urlModel,\n googleLoginQuery\n);\nsessionAuthRouter.get(\n sessionAuthRoutes.googleCallback.urlModel,\n googleCallback\n);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,17 @@
1
+ import { getSubscription } from './../controllers/stripe.controller.mjs';
2
+ import { Router } from "express";
3
+ const stripeRouter = Router();
4
+ const baseURL = `${process.env.BACKEND_URL}/api/stipe`;
5
+ const stripeRoutes = {
6
+ getCheckoutSession: {
7
+ urlModel: "/create-subscription",
8
+ url: `${baseURL}/create-subscription`,
9
+ method: "POST"
10
+ }
11
+ };
12
+ stripeRouter.post(stripeRoutes.getCheckoutSession.urlModel, getSubscription);
13
+ export {
14
+ stripeRouter,
15
+ stripeRoutes
16
+ };
17
+ //# sourceMappingURL=stripe.routes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/routes/stripe.routes.ts"],"sourcesContent":["import { getSubscription } from '@controllers/stripe.controller';\nimport { Router } from 'express';\nimport { Routes } from '@/types/Routes';\n\nexport const stripeRouter: Router = Router();\n\nconst baseURL = `${process.env.BACKEND_URL}/api/stipe`;\n\nexport const stripeRoutes = {\n getCheckoutSession: {\n urlModel: '/create-subscription',\n url: `${baseURL}/create-subscription`,\n method: 'POST',\n },\n} satisfies Routes;\n\n// Authentication\nstripeRouter.post(stripeRoutes.getCheckoutSession.urlModel, getSubscription);\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC,SAAS,cAAc;AAGhB,MAAM,eAAuB,OAAO;AAE3C,MAAM,UAAU,GAAG,QAAQ,IAAI,WAAW;AAEnC,MAAM,eAAe;AAAA,EAC1B,oBAAoB;AAAA,IAClB,UAAU;AAAA,IACV,KAAK,GAAG,OAAO;AAAA,IACf,QAAQ;AAAA,EACV;AACF;AAGA,aAAa,KAAK,aAAa,mBAAmB,UAAU,eAAe;","names":[]}