Skip to content

Commit b56d1b0

Browse files
authored
Merge pull request #21 from PenginYY/main
feat: new model request type
2 parents 7fd3593 + 2f12d97 commit b56d1b0

File tree

6 files changed

+113
-6
lines changed

6 files changed

+113
-6
lines changed

dags/create_resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def callback(ch, method, properties, body):
122122
connection.close()
123123
print("Listener stopped.")
124124

125-
return received_message if received_message is not None else "67be6c7a49bb7121f5dab8fe"
125+
return received_message if received_message is not None else "67cf664cd062ae3b148d5f13"
126126

127127
def fetch_from_mongo(received_message):
128128
"""

dags/idp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def callback(ch, method, properties, body):
109109
connection.close()
110110
print("Listener stopped.")
111111

112-
return received_message if received_message is not None else ""
112+
return received_message if received_message is not None else "67cf664cd062ae3b148d5f13"
113113

114114
def fetch_from_mongo(received_message):
115115
print(f"Received message from XCom: {received_message}")

models/requesttype.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import mongoose, { Schema } from "mongoose";
2+
3+
const requesttypeSchema = new Schema({
4+
projectid: {
5+
type: String,
6+
ref: "Project"
7+
},
8+
status: { type: String },
9+
});
10+
11+
const Requesttype =
12+
mongoose.models.Requesttype || mongoose.model("Requesttype", requesttypeSchema);
13+
export default Requesttype;

src/app/api/request/route.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { connectMongoDB } from "../../../../lib/mongodb";
2-
import Request from "../../../../models/request";
2+
import Request from "../../../../models/requesttype";
33
import { NextResponse } from "next/server";
44

55
export async function GET(req) {

src/app/api/requesttype/route.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import { connectMongoDB } from "../../../../lib/mongodb";
2+
import Requesttype from "../../../../models/requesttype";
3+
import { NextResponse } from "next/server";
4+
5+
export async function GET(req) {
6+
// Connect to MongoDB
7+
await connectMongoDB();
8+
9+
const url = new URL(req.url);
10+
const projectid = url.searchParams.get("projectId");
11+
12+
const query = projectid ? { projectid } : {};
13+
14+
const requesttype = await Requesttype.find(query);
15+
16+
return NextResponse.json(requesttype, { status: 200 }); // return NextResponse.json({ requests }, { status: 200 });
17+
}
18+
19+
export async function POST(req) {
20+
// Connect to MongoDB
21+
await connectMongoDB();
22+
23+
const url = new URL(req.url);
24+
const projectid = url.searchParams.get("projectid");
25+
26+
const requesttype = await Requesttype({
27+
projectid,
28+
status: "created",
29+
}).save();
30+
31+
return NextResponse.json(
32+
{ message: "Successfully added requests", requests: requesttype },
33+
{ status: 201 }
34+
);
35+
}
36+
37+
export async function PUT(req) {
38+
try {
39+
const { projectid, status } = await req.json();
40+
41+
// Connect to MongoDB
42+
await connectMongoDB();
43+
44+
// Update requesttype or create if it doesn't exist
45+
const updatedRequestType = await Requesttype.findOneAndUpdate(
46+
{ projectid },
47+
{ status },
48+
{ new: true, upsert: true }
49+
);
50+
51+
return NextResponse.json(
52+
{ message: "Successfully updated request type", requesttype: updatedRequestType },
53+
{ status: 200 }
54+
);
55+
} catch (error) {
56+
console.error("Error updating request type:", error);
57+
return NextResponse.json(
58+
{ message: "Internal Server Error", error: error.message },
59+
{ status: 500 }
60+
);
61+
}
62+
}
63+
64+
65+
66+
export async function DELETE(req) {
67+
await connectMongoDB();
68+
69+
const url = new URL(req.url);
70+
const projectid = url.searchParams.get("projectId");
71+
72+
if (!projectid) {
73+
return NextResponse.json(
74+
{ message: "Missing required fields" },
75+
{ status: 400 }
76+
);
77+
}
78+
79+
await Requesttype.deleteOne({ projectid });
80+
return NextResponse.json(
81+
{ message: "Request type deleted successfully" },
82+
{ status: 200 }
83+
);
84+
}

src/app/requestresource/page.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,18 +72,28 @@ export default function RequestResource() {
7272
toast.success("Request sent successfully");
7373

7474
try {
75-
const res = await fetch("/api/request", {
75+
const resRequest = await fetch("/api/request", {
7676
method: "POST",
7777
headers: {
7878
"Content-Type": "application/json",
7979
},
8080
body: JSON.stringify(TABLE_ROWS_CR),
8181
});
8282

83-
if (!res.ok) {
84-
throw new Error(`Error: ${res.status} - ${res.statusText}`);
83+
const resRequesttype = await fetch(`/api/requesttype?projectid=${projectid}&status=created`, {
84+
method: "POST",
85+
headers: {
86+
"Content-Type": "application/json",
87+
},
88+
89+
});
90+
91+
92+
if (!resRequest.ok) {
93+
throw new Error(`Error: ${resRequest.status} - ${resRequest.statusText}`);
8594
} else {
8695
await fetchResources(); // Refetch resources after request
96+
8797
router.push("/projectlist");
8898
}
8999
} catch (error) {

0 commit comments

Comments
 (0)