Procházet zdrojové kódy

Update ApiV1Controller, add idempotency-key support to /api/v1/statuses endpoint

Daniel Supernault před 2 roky
rodič
revize
c54cdd3eb4
1 změnil soubory, kde provedl 7 přidání a 0 odebrání
  1. 7 0
      app/Http/Controllers/Api/ApiV1Controller.php

+ 7 - 0
app/Http/Controllers/Api/ApiV1Controller.php

@@ -2786,6 +2786,13 @@ class ApiV1Controller extends Controller
 			'comments_disabled' => 'sometimes|boolean',
 		]);
 
+		if($request->hasHeader('idempotency-key')) {
+			$key = 'pf:api:v1:status:idempotency-key:' . $request->user()->id . ':' . hash('sha1', $request->header('idempotency-key'));
+			$exists = Cache::has($key);
+			abort_if($exists, 400, 'Duplicate idempotency key.');
+			Cache::put($key, 1, 3600);
+		}
+
 		if(config('costar.enabled') == true) {
 			$blockedKeywords = config('costar.keyword.block');
 			if($blockedKeywords !== null && $request->status) {