mirror of
				https://github.com/KevinMidboe/planetposen-backend.git
				synced 2025-10-29 16:30:13 +00:00 
			
		
		
		
	Webserver w/ api-routes, controllers, middleware & cart websocket server
This commit is contained in:
		
							
								
								
									
										79
									
								
								src/webserver/server.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/webserver/server.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| // import * as global from "../types/global"; | ||||
| import path from "path"; | ||||
| import express from "express"; | ||||
| import { createServer } from "http"; | ||||
|  | ||||
| // services | ||||
| import logger from "../logger"; | ||||
| import { setupCartWebsocketServer } from "./websocketCartServer"; | ||||
|  | ||||
| // controllers | ||||
| // const TokenController = require(`${__controllers}/tokenController`); | ||||
| import OrderController from "./controllers/orderController"; | ||||
| import ProductController from "./controllers/productController"; | ||||
| import WarehouseController from "./controllers/warehouseController"; | ||||
| import StripePaymentController from "./controllers/stripePaymentController"; | ||||
| import LoginController from "./controllers/loginController"; | ||||
|  | ||||
| // middleware | ||||
| import httpContext from "express-http-context"; | ||||
| import setupCORS from "./middleware/setupCORS"; | ||||
| import setupHeaders from "./middleware/setupHeaders"; | ||||
| import getOrSetCookieForClient from "./middleware/getOrSetCookieForClient"; | ||||
|  | ||||
| const app = express(); | ||||
| const port = process.env.PORT || 30010; | ||||
|  | ||||
| app.use(httpContext.middleware); | ||||
| app.use(setupCORS); | ||||
| app.use(setupHeaders); | ||||
| app.use(getOrSetCookieForClient); | ||||
|  | ||||
| // parse application/json | ||||
|  | ||||
| const router = express.Router(); | ||||
| router.use(express.json()); | ||||
|  | ||||
| router.post("/login", LoginController.login); | ||||
| router.post("/logout", LoginController.logout); | ||||
|  | ||||
| router.get("/products", ProductController.getAll); | ||||
| router.post("/product", ProductController.add); | ||||
| router.get("/product/:product_id", ProductController.getById); | ||||
| router.post("/product/:product_id/sku", ProductController.addSku); | ||||
| router.patch("/product/:product_id/sku/:sku_id", ProductController.updateSku); | ||||
| router.delete("/product/:product_id/sku/:sku_id", ProductController.deleteSku); | ||||
| router.post( | ||||
|   "/product/:product_id/sku/:sku_id/default_price", | ||||
|   ProductController.setSkuDefaultPrice | ||||
| ); | ||||
|  | ||||
| router.get("/orders", OrderController.getAll); | ||||
| router.post("/order", OrderController.createOrder); | ||||
| router.get("/order/:order_id", OrderController.get); | ||||
| router.get("/order/:order_id/status", OrderController.getOrderStatus); | ||||
|  | ||||
| router.get("/warehouse", WarehouseController.getAll); | ||||
| router.get("/warehouse/:productId", WarehouseController.getProduct); | ||||
| // router.get("/api/order/:id", OrderController.getOrderById); | ||||
| // router.post("/api/order/:id/cancel", OrderController.cancelOrder); | ||||
| // router.post("/api/order/:id/extend", OrderController.extendOrder); | ||||
|  | ||||
| router.post("/payment/stripe", StripePaymentController.create); | ||||
| router.post("/webhook/stripe", StripePaymentController.updatePayment); | ||||
|  | ||||
| // router.get("/api/payment/vipps/token", VippsTokenController); | ||||
| // router.get("/api/payment/:id/details", VippsPaymentController.getPaymentDetails); | ||||
| // router.post( | ||||
| //   "/api/payment/callback/v2/payments/:id", | ||||
| //   VippsPaymentController.updatePayment | ||||
| // ); | ||||
|  | ||||
| router.get("/", (req, res) => res.send("hello")); | ||||
|  | ||||
| app.use("/api", router); | ||||
|  | ||||
| const server = createServer(app); | ||||
| server.listen(port, () => logger.info(`Server started, listening at :${port}`)); | ||||
|  | ||||
| setupCartWebsocketServer(server); | ||||
		Reference in New Issue
	
	Block a user