Skip to content

Commit

Permalink
updated
Browse files Browse the repository at this point in the history
  • Loading branch information
awebcode committed Oct 10, 2024
1 parent 6efe397 commit e63904c
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 32 deletions.
36 changes: 20 additions & 16 deletions server/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const express = require("express")
const { GracefulShutdownServer } = require("medusa-core-utils")

const customRoutes = require("./routes/auth/auth.route")
const loaders = require("@medusajs/medusa/dist/loaders/index").default

(async() => {
Expand All @@ -11,35 +11,39 @@ const loaders = require("@medusajs/medusa/dist/loaders/index").default
try {
const { container } = await loaders({
directory,
expressApp: app
})
const configModule = container.resolve("configModule")
const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000
expressApp: app,
});
const configModule = container.resolve("configModule");
const port = process.env.PORT ?? configModule.projectConfig.port ?? 9000;
// Middleware to parse JSON requests
app.use(express.json());

// Use your custom routes
app.use("/api", customRoutes); // Prefixing all custom routes with /api
const server = GracefulShutdownServer.create(
app.listen(port, (err) => {
if (err) {
return
return;
}
console.log(`Server is ready on port: ${port}`)
console.log(`Server is ready on port: ${port}`);
})
)
);

// Handle graceful shutdown
const gracefulShutDown = () => {
server
.shutdown()
.then(() => {
console.info("Gracefully stopping the server.")
process.exit(0)
console.info("Gracefully stopping the server.");
process.exit(0);
})
.catch((e) => {
console.error("Error received when shutting down the server.", e)
process.exit(1)
})
}
process.on("SIGTERM", gracefulShutDown)
process.on("SIGINT", gracefulShutDown)
console.error("Error received when shutting down the server.", e);
process.exit(1);
});
};
process.on("SIGTERM", gracefulShutDown);
process.on("SIGINT", gracefulShutDown);
} catch (err) {
console.error("Error starting server", err)
process.exit(1)
Expand Down
60 changes: 45 additions & 15 deletions server/medusa-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ const REDIS_URL = process.env.REDIS_URL || "redis://localhost:6379";
const plugins = [
`medusa-fulfillment-manual`,
`medusa-payment-manual`,
{
resolve: `@medusajs/file-local`,
options: {
upload_dir: "uploads",
},
},
// {
// resolve: `@medusajs/file-local`,
// options: {
// upload_dir: "uploads",
// },
// },
{
resolve: "@medusajs/admin",
/** @type {import('@medusajs/admin').PluginOptions} */
Expand All @@ -55,7 +55,6 @@ const plugins = [
develop: {
open: process.env.OPEN_BROWSER !== "false",
},

},
},
// ** algolia plugin
Expand Down Expand Up @@ -111,6 +110,37 @@ const plugins = [
// webhook_secret: process.env.STRIPE_WEBHOOK_SECRET,
},
},
{
resolve: `medusa-plugin-dashboard`,
options: {
enableUI: true,
},
},
// Cloudinary plugin
{
resolve: `medusa-file-cloudinary`,
options: {
cloud_name: process.env.CLOUD_NAME,
api_key: process.env.CLOUD_API_KEY,
api_secret: process.env.CLOUD_API_SECRET,
secure: true,
},
},
//sendgrid plugin

{
resolve: `medusa-plugin-resend-custom`,
options: {
api_key: process.env.RESEND_API_ID,
template_path: process.env.SES_TEMPLATE_PATH,
subject_template_type: process.env.RESEND_SUBJECT_TEMPLATE_TYPE || "handlebars",
body_template_type: process.env.RESEND_BODY_TEMPLATE_TYPE || "handlebars",
order_placed_template: "order_placed",
order_shipped_template: "order_shipped",
customer_password_reset_template: "customer_password_reset",
gift_card_created_template: "gift_card_created",
},
},
];

const modules = {
Expand All @@ -130,7 +160,6 @@ const modules = {

/** @type {import('@medusajs/medusa').ConfigModule["projectConfig"]} */
const projectConfig = {

redis_url: REDIS_URL,

jwt_secret: process.env.JWT_SECRET || "supersecret",
Expand All @@ -139,13 +168,14 @@ const projectConfig = {
database_url: DATABASE_URL,
admin_cors: ADMIN_CORS, //ADMIN_CORS || "*" || "http://localhost:7000,http://localhost:7001",
// worker_mode: process.env.MEDUSA_WORKER_MODE,
database_extra: process.env.NODE_ENV !== "development" ?
{
ssl: {
rejectUnauthorized: false,
},
} : {},

database_extra:
process.env.NODE_ENV !== "development"
? {
ssl: {
rejectUnauthorized: false,
},
}
: {},

// Uncomment the following lines to enable REDIS
// redis_url: REDIS_URL
Expand Down
1 change: 1 addition & 0 deletions server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"medusa-payment-manual": "1.0.25",
"medusa-payment-stripe": "^6.0.11",
"medusa-plugin-algolia": "^0.2.21",
"medusa-plugin-dashboard": "^0.1.6",
"prism-react-renderer": "^2.0.4",
"typeorm": "0.3.16"
},
Expand Down
Empty file.
21 changes: 21 additions & 0 deletions server/routes/auth/auth.route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// routes/customRoutes.js

const express = require("express");
const router = express.Router();

// Example route: Get all items
router.get("/items", (req, res) => {
// Your logic to fetch items, e.g., from a database
res.json({ message: "Fetching all items..." });
});

// Example route: Create an item
router.post("/items", (req, res) => {
// Your logic to create a new item
const newItem = req.body; // Assuming you send the item data in the request body
res.status(201).json({ message: "Item created", item: newItem });
});

// More custom routes can be added here...

module.exports = router;
Empty file added server/routes/index.routes.ts
Empty file.
14 changes: 14 additions & 0 deletions server/src/api/store/subscribe/route.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { MedusaRequest, MedusaResponse } from "@medusajs/medusa";

export const POST = async (req: MedusaRequest, res: MedusaResponse) => {
const mailchimpService = req.scope.resolve("mailchimpService");

// Assuming req.body contains the necessary data for newsletter subscription
const { email, tags } = req.body as { email: string; tags?: string[] };

// Subscribe the user to Mailchimp newsletter
await mailchimpService.subscribeNewsletter(email, { tags: tags ?? ["customer"] });

// Respond with a success message or appropriate status
res.status(200).json({ message: "Subscription successful" });
};
2 changes: 1 addition & 1 deletion server/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"resolveJsonModule": true,
"checkJs": false
},
"include": ["src/"],
"include": ["src/", "routes"],
"exclude": [
"**/__tests__",
"**/__fixtures__",
Expand Down

0 comments on commit e63904c

Please sign in to comment.