Update index.js
Browse files
index.js
CHANGED
@@ -144,6 +144,40 @@ app.get("/v1/show-key", async (req, res) => {
|
|
144 |
}
|
145 |
});
|
146 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
app.post('/v1/generate-key', async (req, res) => {
|
148 |
const dbClient = new Database("AkenoXJs");
|
149 |
const collection = dbClient.collection('api_keys');
|
|
|
144 |
}
|
145 |
});
|
146 |
|
147 |
+
app.post("/v1/revoked-key", async (req, res) => {
|
148 |
+
const dbClient = new Database("AkenoXJs");
|
149 |
+
const collection = dbClient.collection('api_keys');
|
150 |
+
try {
|
151 |
+
const userIdString = req.query.user_id;
|
152 |
+
const userIdNumber = Number(userIdString);
|
153 |
+
|
154 |
+
if (isNaN(userIdNumber)) {
|
155 |
+
return res.status(400).json({ error: "Invalid or missing user_id" });
|
156 |
+
}
|
157 |
+
|
158 |
+
const existingUser = await collection.findOne({ owner: userIdNumber });
|
159 |
+
|
160 |
+
if (existingUser) {
|
161 |
+
const newKey = generateAkenoKey();
|
162 |
+
const result = await collection.updateOne(
|
163 |
+
{ owner: existingUser.owner },
|
164 |
+
{ $setOnInsert: { key: newKey, createdAt: new Date(), email: existingUser.email || null } },
|
165 |
+
{ upsert: true });
|
166 |
+
|
167 |
+
if (result.upsertedCount > 0) {
|
168 |
+
res.json({ message: "New API key generated", "apiKey": newKey });
|
169 |
+
} else {
|
170 |
+
res.json({ message: "API key already exists for this user" });
|
171 |
+
}
|
172 |
+
|
173 |
+
} else {
|
174 |
+
res.status(500).json({ error: "API key not found" });
|
175 |
+
}
|
176 |
+
} catch (err) {
|
177 |
+
res.status(500).json({ error: `Key generation failed: ${err.message}` });
|
178 |
+
}
|
179 |
+
});
|
180 |
+
|
181 |
app.post('/v1/generate-key', async (req, res) => {
|
182 |
const dbClient = new Database("AkenoXJs");
|
183 |
const collection = dbClient.collection('api_keys');
|