Pārlūkot izejas kodu

Add update and delete

Emelia Smith 1 gadu atpakaļ
vecāks
revīzija
21466556d4

+ 1 - 1
app/Http/Controllers/Api/ApiController.php

@@ -35,4 +35,4 @@ class ApiController extends Controller {
       return $v != null;
       return $v != null;
     }, ARRAY_FILTER_USE_BOTH);
     }, ARRAY_FILTER_USE_BOTH);
   }
   }
-}
+}

+ 40 - 1
app/Http/Controllers/Api/V1/Admin/DomainBlocksController.php

@@ -73,4 +73,43 @@ class DomainBlocksController extends ApiController {
 
 
     return $this->json(new DomainBlockResource($domain_block));
     return $this->json(new DomainBlockResource($domain_block));
   }
   }
-}
+
+  public function update(Request $request, $id) {
+    $this->validate($request, [
+      'severity' => [
+        'sometimes',
+        Rule::in(['noop', 'silence', 'suspend'])
+      ],
+      'reject_media' => 'sometimes|required|boolean',
+      'reject_reports' => 'sometimes|required|boolean',
+      'private_comment' => 'sometimes|string|min:1|max:1000',
+      'public_comment' => 'sometimes|string|min:1|max:1000',
+      'obfuscate' => 'sometimes|required|boolean'
+    ]);
+    
+    $severity = $request->input('severity');
+    $private_comment = $request->input('private_comment');
+
+    $instance = Instance::moderated()->findOrFail($id);
+
+    $instance->banned = $severity === 'suspend';
+    $instance->unlisted = $severity === 'silence';
+    $instance->notes = [$private_comment];
+    $instance->save();
+
+    InstanceService::refresh();
+
+    return $this->json(new DomainBlockResource($instance));
+  }
+
+  public function delete(Request $request, $id) {
+    $instance = Instance::moderated()->findOrFail($id);
+    $instance->banned = false;
+    $instance->unlisted = false;
+    $instance->save();
+
+    InstanceService::refresh();
+
+    return $this->json([], [], 200);
+  }
+}

+ 2 - 0
routes/api.php

@@ -106,6 +106,8 @@ Route::group(['prefix' => 'api'], function() use($middleware) {
             Route::get('domain_blocks', 'Api\V1\Admin\DomainBlocksController@index')->middleware($middleware);
             Route::get('domain_blocks', 'Api\V1\Admin\DomainBlocksController@index')->middleware($middleware);
             Route::post('domain_blocks', 'Api\V1\Admin\DomainBlocksController@create')->middleware($middleware);
             Route::post('domain_blocks', 'Api\V1\Admin\DomainBlocksController@create')->middleware($middleware);
             Route::get('domain_blocks/{id}', 'Api\V1\Admin\DomainBlocksController@show')->middleware($middleware);
             Route::get('domain_blocks/{id}', 'Api\V1\Admin\DomainBlocksController@show')->middleware($middleware);
+            Route::put('domain_blocks/{id}', 'Api\V1\Admin\DomainBlocksController@update')->middleware($middleware);
+            Route::delete('domain_blocks/{id}', 'Api\V1\Admin\DomainBlocksController@delete')->middleware($middleware);
         })->middleware($middleware);
         })->middleware($middleware);
     });
     });