randydev commited on
Commit
dc73788
·
verified ·
1 Parent(s): 8587052

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +34 -0
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');