Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Illuminate\Http\Request;
- /*
- |--------------------------------------------------------------------------
- | API Routes
- |--------------------------------------------------------------------------
- |
- | Here is where you can register API routes for your application. These
- | routes are loaded by the RouteServiceProvider within a group which
- | is assigned the "api" middleware group. Enjoy building your API!
- |
- */
- Route::options('{all}', function () {
- return response('ok', 200)
- ->header('Access-Control-Allow-Credentials', 'true')
- ->header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT, DELETE')
- ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With')
- ->header('Access-Control-Allow-Origin', '*');
- })->where('all', '.*');
- Route::middleware('auth:api')->get('/user', function (Request $request) {
- return $request->user();
- });
- Route::get('/users/check/{phonenumber}', ['middleware' => 'cors', function ($phonenumber, Request $request) {
- $user = \App\User::where('phone', $phonenumber)->first();
- if ($user) {
- return new \Illuminate\Http\JsonResponse(null, 200);
- }
- return new \Illuminate\Http\JsonResponse(null, 404);
- }]);
- Route::post('/users/login', ['middleware' => 'cors', function (Request $request) {
- $user = \App\User::where('phone', $request->phone)->where('password', $request->password)->first();
- if ($user) {
- $data = [
- 'data' => $user->toArray()
- ];
- return new \Illuminate\Http\JsonResponse($data, 200);
- }
- $data = [
- 'data' => [],
- 'errors' => ['login or password incorrect']
- ];
- return new \Illuminate\Http\JsonResponse($data, 404);
- }]);
- Route::post('/users/registration', ['middleware' => 'cors', function (Request $request) {
- if ($request->password !== $request->repeat_password) {
- $data = [
- 'data' => [],
- 'errors' => ['login or password incorrect']
- ];
- return new \Illuminate\Http\JsonResponse($data, 403);
- }
- $user = new \App\User();
- $user->name = 'Test';
- $user->surname = 'Test';
- $user->phone = $request->phone;
- $user->password = $request->password;
- $user->birth_date = \Faker\Provider\DateTime::date();
- $user->save();
- $data = [
- 'data' => $user->toArray()
- ];
- return new \Illuminate\Http\JsonResponse($data, 200);
- }]);
- Route::post('/users/logout', ['middleware' => 'cors', function (Request $request) {
- return new \Illuminate\Http\JsonResponse(true, 200);
- }]);
- Route::get('/products', ['middleware' => 'cors', function (Request $request) {
- $page = 1;
- $count = \App\app\Models\Products::count();
- $products = \Illuminate\Support\Facades\DB::table('products');
- if ($request->filters) {
- foreach ($request->filters as $filter) {
- $filter = json_decode('['.$filter.']');
- $products->where($filter[0]->property, $filter[0]->operator, '%'.$filter[0]->value.'%');
- }
- $count = $products->count();
- }
- if ($request->limit) {
- $page = $request->page ?: 1;
- $products = $products->limit($request->limit)->offset($request->limit * ($page - 1));
- } else $products = $products::all();
- $data = [
- 'data' => $products->get()->toArray(),
- 'meta' => [
- 'count' => $count,
- 'page' => $page
- ]
- ];
- if ($request->limit) $data['meta']['per_page'] = $request->limit;
- return response()->json($data);
- }]);
- Route::put('/products', ['middleware' => 'cors', function (Request $request) {
- $p = new \App\app\Models\Products($request->all());
- $p->image_id = $request->image;
- if ($p->save())
- return new \Illuminate\Http\JsonResponse(['data' => $p->toArray()]);
- return new \Illuminate\Http\JsonResponse(['data' => [], 'errors' => ['error']], 403);
- }]);
- Route::post('/products/{products}', ['middleware' => 'cors', function ($product, Request $request) {
- $product = \App\app\Models\Products::find($request->id);
- $product->name = $request->name;
- $product->image_id = 1;
- $product->description = $request->description;
- if ($product->save())
- return new \Illuminate\Http\JsonResponse(['data' => $product->toArray()]);
- return new \Illuminate\Http\JsonResponse(['data' => [], 'errors' => ['error']], 403);
- }]);
- Route::put('/images', ['middleware' => 'cors', function (Request $request) {
- $image = $request->file('image');
- foreach ($image as $img) {
- $path = $img->store('other', 'public');
- $_img = new \App\app\Models\Images();
- $_img->path = $path;
- if ($_img->save()) {
- $data = [
- 'data' => $_img->id,
- ];
- return response()->json($data);
- }
- $data = [
- 'errors' => ['chlen']
- ];
- return response()->json($data);
- }
- }]);
- Route::delete('/products/{product}', ['middleware' => 'cors', function (\App\app\Models\Products $product, Request $request) {
- $product->delete();
- }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement