From b452ee8296ece59bd9840924d090390b59d83957 Mon Sep 17 00:00:00 2001 From: MRoyhanF Date: Thu, 19 Dec 2024 09:18:47 +0700 Subject: [PATCH] feat: discount | init discount feature --- src/modules/discount/discount.controller.js | 24 +++ src/modules/discount/discount.routes.js | 7 + src/modules/index.js | 2 + .../views/components/ui/sidebar.edge | 6 + src/resources/views/pages/discount/index.edge | 185 ++++++++++++++++++ src/resources/views/pages/user/index.edge | 2 +- 6 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 src/modules/discount/discount.controller.js create mode 100644 src/modules/discount/discount.routes.js create mode 100644 src/resources/views/pages/discount/index.edge diff --git a/src/modules/discount/discount.controller.js b/src/modules/discount/discount.controller.js new file mode 100644 index 0000000..9fb1cc0 --- /dev/null +++ b/src/modules/discount/discount.controller.js @@ -0,0 +1,24 @@ +import axios from 'axios'; + +export const index = async (req, res, next) => { + try { + const api = process.env.API_URL; + const { token } = req; + + const discountsResponse = await axios.get(`${api}/api/v1/discounts`, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + const data = { + token : token, + api : api, + discounts : discountsResponse.data.data || [], + } + + res.edge('pages/discount/index', data); + } catch (error) { + next(error) + } +}; \ No newline at end of file diff --git a/src/modules/discount/discount.routes.js b/src/modules/discount/discount.routes.js new file mode 100644 index 0000000..141f771 --- /dev/null +++ b/src/modules/discount/discount.routes.js @@ -0,0 +1,7 @@ +import * as discountController from "./discount.controller.js"; +import {validateCookies} from '../../middlewares/auth.js'; + +export default (router) => { + const prefix = "/discount"; + router.get(prefix + "/", validateCookies, discountController.index); +}; diff --git a/src/modules/index.js b/src/modules/index.js index b0c8d6d..fe6dc2c 100644 --- a/src/modules/index.js +++ b/src/modules/index.js @@ -8,6 +8,7 @@ import airlineRoutes from "./airline/airline.routes.js"; import flightRoutes from "./flight/flight.routes.js"; import ticketRoutes from "./tikcet/ticket.routes.js"; import userRoutes from "./user/user.routes.js"; +import discountRoutes from "./discount/discount.routes.js"; export default (app) => { const router = Router(); @@ -29,4 +30,5 @@ export default (app) => { flightRoutes(router); ticketRoutes(router); userRoutes(router); + discountRoutes(router); }; diff --git a/src/resources/views/components/ui/sidebar.edge b/src/resources/views/components/ui/sidebar.edge index 5f86b83..2fe7976 100644 --- a/src/resources/views/components/ui/sidebar.edge +++ b/src/resources/views/components/ui/sidebar.edge @@ -65,6 +65,12 @@ Tikets + +
+ +
Discount +
diff --git a/src/resources/views/pages/discount/index.edge b/src/resources/views/pages/discount/index.edge new file mode 100644 index 0000000..a7691b5 --- /dev/null +++ b/src/resources/views/pages/discount/index.edge @@ -0,0 +1,185 @@ +@layout.app({ title: "User List" }) +@slot('main') + +
+ +
+ @component('components/ui/modal', { + title: 'Add Discount', + buttonClass: 'shadow-md py-2 px-4 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-300 text-blue-800 hover:bg-blue-400 focus:outline-none focus:bg-blue-200 disabled:opacity-50 disabled:pointer-events-none', + }) + @slot('header') + Add Discount + @end + @slot('content') + +
+
+ + +
+ +
+ + @end + @end +
+ +
+ + + + + + + + + + @each((data, index) in discounts) + + + + + + @else + + + + @end + + +
NoPercentageAction
{{ index + 1 }}{{ data.percentage }} % +
+ @component('components/ui/modal', { + title: 'Edit Discount', + buttonClass: 'bg-blue-500 text-white px-2 py-1 rounded-md', + }) + @slot('header') + Edit + @end + @slot('content') + +
+
+ + +
+ +
+ + @end + @end + +
+
No data available
+
+
+ + + +@endslot +@end \ No newline at end of file diff --git a/src/resources/views/pages/user/index.edge b/src/resources/views/pages/user/index.edge index 27673c1..ca2304e 100644 --- a/src/resources/views/pages/user/index.edge +++ b/src/resources/views/pages/user/index.edge @@ -29,7 +29,7 @@ @end
-
+