wzq 5 lat temu
rodzic
commit
dde9b6650e

+ 14 - 0
app/Http/Controllers/Post/PostController.php

@@ -245,6 +245,20 @@ class PostController extends Controller
         return  $this->postRepository->delete($request->all());
     }
 
+    /**
+     * 复原内容
+     */
+    public function restore(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->restore($request->all());
+    }
+
     /**
      * 删除评论
      */

+ 31 - 0
app/Repositories/Post/PostRepository.php

@@ -421,6 +421,37 @@ class PostRepository
         }
     }
 
+    /**
+     * 复原内容
+     */
+    public function restore($request)
+    {
+        $post = $this->post->withTrashed()->where('id', $request['id'])->first();
+        if(!$post){
+            return Response::create([
+                'message'  => '获取内容信息失败',
+                'status_code'   => 500
+            ]);
+        }
+
+        DB::beginTransaction();
+        try{
+            $post->restore();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('复原内容:'.$request['id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
     /**
      * 删除评论
      */

+ 2 - 0
routes/api.php

@@ -47,6 +47,8 @@ $api->version('v1', [
 
             //回收站列表
             $api->get('post/waste', 'PostController@waste');
+            //回收站复原
+            $api->put('post/waste', 'PostController@restore');
 
             //日志列表
             $api->get('post/log', 'PostController@log');