UpgradeController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-08-21
  6. * Time: 10:22
  7. */
  8. namespace App\Http\Controllers;
  9. use App\Repositories\UpgradeRepository;
  10. use App\Transformers\UpgradeTransformer;
  11. use Illuminate\Http\Request;
  12. use League\Fractal\Manager;
  13. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  14. use League\Fractal\Resource\Collection;
  15. use Illuminate\Support\Facades\Validator;
  16. use Illuminate\Validation\Rule;
  17. class UpgradeController extends Controller {
  18. public function __construct(UpgradeRepository $upgradeRepository) {
  19. $this->upgradeRepository = $upgradeRepository;
  20. }
  21. public function create(Request $request) {
  22. $validator = Validator::make($request->all(), [
  23. 'os' => ['required', Rule::in('ios','android')],
  24. 'version' => 'required|string',
  25. 'version_code' => 'required|integer',
  26. 'url' => 'required|url',
  27. 'title' => 'max:80',
  28. //'content' => 'min:20',
  29. 'is_forced_update' => [Rule::in([0, 1])],
  30. ]);
  31. if ($validator->fails()) {
  32. return $this->response->error($validator->errors()->first(), 500);
  33. }
  34. return $this->upgradeRepository->create($request->all());
  35. }
  36. public function index(Request $request){
  37. $upgrade = $this->upgradeRepository->index($request->all());
  38. $fractal = new Manager();
  39. $resource = new Collection($upgrade, new UpgradeTransformer());
  40. $resource->setPaginator(new IlluminatePaginatorAdapter($upgrade));
  41. $data = $fractal->createData($resource)->toArray();
  42. $data['extra'] = [
  43. 'filters' => [
  44. 'os',
  45. ],
  46. 'columns' => [
  47. 'id',
  48. 'version',
  49. 'version_code',
  50. 'url',
  51. 'title',
  52. 'content',
  53. 'is_forced_update',
  54. 'created_at',
  55. ]
  56. ];
  57. return $data;
  58. }
  59. }