Skip to content

Commit 6f7dfb4

Browse files
committed
feat: add delete functionality for purchases in API and update OpenAPI documentation
1 parent 6902d89 commit 6f7dfb4

File tree

3 files changed

+60
-18
lines changed

3 files changed

+60
-18
lines changed

client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"dev": "vite",
88
"dev:env": "set -a && source ../.env && set +a && vite",
99
"build": "npm run openapi && tsc && vite build",
10-
"build:env": "set -a && source ../.env && set +a && vite build",
10+
"build:env": "set -a && source ../.env && set +a && npm run openapi && vite build",
1111
"lint": "eslint ./src/**/**/*.{ts,tsx} --fix",
1212
"wrangler": "cd cloudflare-fake-secured-api && npm run dev:env",
1313
"preview": "vite preview",

client/public/openapi.json

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,49 @@
243243
}
244244
}
245245
},
246+
"/api/purchase/{purchaseId}": {
247+
"delete": {
248+
"summary": "Delete a purchase by ID",
249+
"description": "Deletes a purchase record. Requires write permission.",
250+
"tags": [
251+
"Purchases"
252+
],
253+
"parameters": [
254+
{
255+
"name": "purchaseId",
256+
"in": "path",
257+
"required": true,
258+
"description": "Purchase ID",
259+
"schema": {
260+
"type": "string"
261+
}
262+
}
263+
],
264+
"responses": {
265+
"200": {
266+
"description": "Purchase successfully deleted",
267+
"content": {
268+
"application/json": {
269+
"schema": {
270+
"type": "object",
271+
"properties": {
272+
"success": {
273+
"type": "boolean"
274+
},
275+
"message": {
276+
"type": "string"
277+
}
278+
}
279+
}
280+
}
281+
}
282+
},
283+
"404": {
284+
"description": "Purchase not found or unauthorized request"
285+
}
286+
}
287+
}
288+
},
246289
"/api/purchase": {
247290
"post": {
248291
"summary": "Add a new purchase",
@@ -288,7 +331,7 @@
288331
"/api/purchase/{id}": {
289332
"get": {
290333
"summary": "Get purchase by ID",
291-
"description": "Returns information about a specific purchase. Requires read permission.",
334+
"description": "Returns information about a specific purchase own by a tester. Requires read permission.",
292335
"tags": [
293336
"Purchases"
294337
],

cloudflare-worker/src/routes/index.ts

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -537,33 +537,32 @@ const purchaseRoutes = (router: Router, env: Env) => {
537537
* @openapi
538538
* /api/purchase/{purchaseId}:
539539
* delete:
540-
* summary: Delete a purchase by ID
541-
* description: Deletes a purchase record by ID. Requires write permission.
542-
* tags:
540+
* summary: Delete a purchase by ID
541+
* description: Deletes a purchase record. Requires write permission.
542+
* tags:
543543
* - Purchases
544-
* parameters:
545-
* - name: purchaseId
546-
* in: path
547-
* required: true
548-
* description: Purchase ID
549-
* schema:
550-
* type: string
551-
* responses:
544+
* parameters:
545+
* - name: purchaseId
546+
* in: path
547+
* required: true
548+
* description: Purchase ID
549+
* schema:
550+
* type: string
551+
* responses:
552552
* 200:
553-
* description: Successfully retrieved purchase info
553+
* description: Purchase successfully deleted
554554
* content:
555555
* application/json:
556556
* schema:
557557
* type: object
558558
* properties:
559559
* success:
560560
* type: boolean
561-
* data:
562-
* $ref: '#/components/schemas/Purchase'
561+
* message:
562+
* type: string
563563
* 404:
564-
* description: Purchase not found
564+
* description: Purchase not found or unauthorized request
565565
*/
566-
567566
router.delete(
568567
"/api/purchase/:purchaseId",
569568
async (request) => {

0 commit comments

Comments
 (0)