Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.13 KB | None | 0 0
  1. <?php
  2.  
  3. use Illuminate\Http\Request;
  4.  
  5. /*
  6. |--------------------------------------------------------------------------
  7. | API Routes
  8. |--------------------------------------------------------------------------
  9. |
  10. | Here is where you can register API routes for your application. These
  11. | routes are loaded by the RouteServiceProvider within a group which
  12. | is assigned the "api" middleware group. Enjoy building your API!
  13. |
  14. */
  15.  
  16. Route::options('{all}', function () {
  17.     return response('ok', 200)
  18.         ->header('Access-Control-Allow-Credentials', 'true')
  19.         ->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE')
  20.         ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With')
  21.         ->header('Access-Control-Allow-Origin', '*');
  22. })->where('all', '.*');
  23.  
  24. Route::middleware('auth:api')->get('/user', function (Request $request) {
  25.     return $request->user();
  26. });
  27.  
  28. Route::get('/users/check/{phonenumber}', ['middleware' => 'cors', function ($phonenumber, Request $request) {
  29.     $user = \App\User::where('phone', $phonenumber)->first();
  30.     if ($user) {
  31.         return new \Illuminate\Http\JsonResponse(null, 200);
  32.     }
  33.  
  34.     return new \Illuminate\Http\JsonResponse(null, 404);
  35. }]);
  36.  
  37. Route::post('/users/login', ['middleware' => 'cors', function (Request $request) {
  38.     $user = \App\User::where('phone', $request->phone)->where('password', $request->password)->first();
  39.     if ($user) {
  40.         $data = [
  41.             'data' => $user->toArray()
  42.         ];
  43.  
  44.         return new \Illuminate\Http\JsonResponse($data, 200);
  45.     }
  46.  
  47.     $data = [
  48.         'data' => [],
  49.         'errors' => ['login or password incorrect']
  50.     ];
  51.  
  52.     return new \Illuminate\Http\JsonResponse($data, 404);
  53. }]);
  54.  
  55. Route::post('/users/registration', ['middleware' => 'cors', function (Request $request) {
  56.     if ($request->password !== $request->repeat_password) {
  57.         $data = [
  58.             'data' => [],
  59.             'errors' => ['login or password incorrect']
  60.         ];
  61.         return new \Illuminate\Http\JsonResponse($data, 403);
  62.     }
  63.  
  64.     $user = new \App\User();
  65.     $user->name = 'Test';
  66.     $user->surname = 'Test';
  67.     $user->phone = $request->phone;
  68.     $user->password = $request->password;
  69.     $user->birth_date = \Faker\Provider\DateTime::date();
  70.     $user->save();
  71.  
  72.     $data = [
  73.         'data' => $user->toArray()
  74.     ];
  75.  
  76.     return new \Illuminate\Http\JsonResponse($data, 200);
  77. }]);
  78.  
  79. Route::post('/users/logout', ['middleware' => 'cors', function (Request $request) {
  80.     return new \Illuminate\Http\JsonResponse(true, 200);
  81. }]);
  82.  
  83. Route::get('/products', ['middleware' => 'cors', function (Request $request) {
  84.     $page = 1;
  85.     $count = \App\app\Models\Products::count();
  86.     $products = \Illuminate\Support\Facades\DB::table('products');
  87.     if ($request->filters) {
  88.         foreach ($request->filters as $filter) {
  89.             $filter = json_decode('['.$filter.']');
  90.             $products->where($filter[0]->property, $filter[0]->operator, '%'.$filter[0]->value.'%');
  91.         }
  92.         $count = $products->count();
  93.     }
  94.  
  95.     if ($request->limit) {
  96.         $page = $request->page ?: 1;
  97.         $products = $products->limit($request->limit)->offset($request->limit * ($page - 1));
  98.     } else $products = $products::all();
  99.  
  100.  
  101.     $data = [
  102.         'data' => $products->get()->toArray(),
  103.         'meta' => [
  104.             'count' => $count,
  105.             'page' => $page
  106.         ]
  107.     ];
  108.  
  109.     if ($request->limit) $data['meta']['per_page'] = $request->limit;
  110.  
  111.  
  112.     return response()->json($data);
  113. }]);
  114.  
  115. Route::put('/products', ['middleware' => 'cors', function (Request $request) {
  116.     $p = new \App\app\Models\Products($request->all());
  117.     $p->image_id = $request->image;
  118.     if ($p->save())
  119.         return new \Illuminate\Http\JsonResponse(['data' => $p->toArray()]);
  120.  
  121.     return new \Illuminate\Http\JsonResponse(['data' => [], 'errors' => ['error']], 403);
  122. }]);
  123.  
  124. Route::post('/products/{products}', ['middleware' => 'cors', function ($product, Request $request) {
  125.     $product = \App\app\Models\Products::find($request->id);
  126.     $product->name = $request->name;
  127.     $product->image_id = 1;
  128.     $product->description = $request->description;
  129.     if ($product->save())
  130.         return new \Illuminate\Http\JsonResponse(['data' => $product->toArray()]);
  131.  
  132.     return new \Illuminate\Http\JsonResponse(['data' => [], 'errors' => ['error']], 403);
  133. }]);
  134.  
  135. Route::put('/images', ['middleware' => 'cors', function (Request $request) {
  136.     $image = $request->file('image');
  137.     foreach ($image as $img) {
  138.         $path = $img->store('other', 'public');
  139.         $_img = new \App\app\Models\Images();
  140.         $_img->path = $path;
  141.         if ($_img->save()) {
  142.             $data = [
  143.                 'data' => $_img->id,
  144.             ];
  145.             return response()->json($data);
  146.         }
  147.         $data = [
  148.             'errors' => ['chlen']
  149.         ];
  150.         return response()->json($data);
  151.     }
  152. }]);
  153.  
  154. Route::delete('/products/{product}', ['middleware' => 'cors', function (\App\app\Models\Products $product, Request $request) {
  155.     $product->delete();
  156. }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement