|
@@ -0,0 +1,78 @@
|
|
|
|
+<?php
|
|
|
|
+/**
|
|
|
|
+ * Created by PhpStorm.
|
|
|
|
+ * User: Administrator
|
|
|
|
+ * Date: 2019-06-12
|
|
|
|
+ * Time: 16:10
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+namespace App\Http\Controllers\V2;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
|
+use App\Repositories\ActivitiesRepository;
|
|
|
|
+use App\Transformers\ActivitiesTansformer;
|
|
|
|
+use Illuminate\Http\Request;
|
|
|
|
+use Illuminate\Support\Facades\Validator;
|
|
|
|
+use League\Fractal\Manager;
|
|
|
|
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
|
|
|
+use League\Fractal\Resource\Collection;
|
|
|
|
+use League\Fractal\Resource\Item;
|
|
|
|
+
|
|
|
|
+class ActivitiesController extends Controller {
|
|
|
|
+ public function __construct(ActivitiesRepository $activitiesRepository) {
|
|
|
|
+ $this->activitiesRepository = $activitiesRepository;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function index(Request $request){
|
|
|
|
+ $activitie = $this->activitiesRepository->index($request->all());
|
|
|
|
+ $fractal = new Manager();
|
|
|
|
+ $resource = new Collection($activitie, new ActivitiesTansformer());
|
|
|
|
+ $resource->setPaginator(new IlluminatePaginatorAdapter($activitie));
|
|
|
|
+ $data = $fractal->createData($resource)->toArray();
|
|
|
|
+ $data['extra'] = [
|
|
|
|
+ 'filters' => [
|
|
|
|
+ 'name',
|
|
|
|
+ ],
|
|
|
|
+ 'columns' => [
|
|
|
|
+ 'id',
|
|
|
|
+ 'name',
|
|
|
|
+ 'created_at',
|
|
|
|
+ ]
|
|
|
|
+ ];
|
|
|
|
+ return $data;
|
|
|
|
+ }
|
|
|
|
+ public function create(Request $request){
|
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
|
+ 'name' => 'required|string|max:20',
|
|
|
|
+ 'content' => 'required|string',
|
|
|
|
+ ]);
|
|
|
|
+ if ($validator->fails()) {
|
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
|
+ }
|
|
|
|
+ return $this->activitiesRepository->create($request->all());
|
|
|
|
+ }
|
|
|
|
+ public function edit(Request $request){
|
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
|
+ 'id' => 'required|integer|max:20 ',
|
|
|
|
+ 'name' => 'required|string|max:12',
|
|
|
|
+ 'content' => 'required|string',
|
|
|
|
+ ]);
|
|
|
|
+ if ($validator->fails()) {
|
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return $this->activitiesRepository->edit($request->all());
|
|
|
|
+ }
|
|
|
|
+ public function view(Request $request){
|
|
|
|
+ $data = $request->only('id');
|
|
|
|
+ $validator = Validator::make($data, [
|
|
|
|
+ 'id' => 'required|integer|max:12',
|
|
|
|
+ ]);
|
|
|
|
+ if ($validator->fails()) {
|
|
|
|
+ return $this->response->error($validator->errors()->first(), 500);
|
|
|
|
+ }
|
|
|
|
+ $info = $this->activitiesRepository->view($data);
|
|
|
|
+ return $this->response->item($info, new ActivitiesTansformer());
|
|
|
|
+ }
|
|
|
|
+}
|