function index(Request $request) { ///////////////// // Load Filter // ///////////////// $filters = $this->request->only('type', 'tag', 'skip', 'take', 'group', 'with_count'); /////////// // Query // /////////// if (!$filters['take']) { $filters['take'] = 500; } else { $filters['take'] = min($filters['take'] * 1, 500); } $filters['skip'] = $filters['skip'] * 1; $q = Model::name($filters['name'])->type($filters['type']); if ($filters['group']) { $q = $q->groupby('tag'); } if ($filters['with_count']) { $count = $q->count(); } $data = $q->skip($filters['skip'])->take($filters['take'])->orderBy('tag')->select(['type', 'tag'])->get(); ////////////// // Response // ////////////// return response()->json(JSend::success(['count' => $count, 'data' => $data->toArray()])->asArray())->setCallback($this->request->input('callback')); }
/** * store a resource * @param Request $request http request * @param mixed $id id of the resource for updating * @return jsend jsend with newly stored source */ function store(Request $request, $id = null) { //////////////// // Load Data // //////////////// if ($id) { $data = Model::find($id); if (!$data) { return app()->abort(404); } } else { $data = new Model(); } /////////////////////////////////// // Assign posted data to Data // /////////////////////////////////// $data->fill($request->input()); /////////// // Store // /////////// if ($data->save()) { return response()->json(JSend::success(['data' => $data])->asArray()); } else { return response()->json(JSend::fail($data->getErrors())->asArray()); } }
/** * [consolidate description] * @return [type] [description] */ public function consolidate() { if (Model::consolidateTotalFlight()) { return response()->json(JSend::success()->asArray())->setCallback($this->request->input('callback')); } else { return app()->abort(500); } }
/** * store a resource * @param Request $request http request * @param mixed $id id of the resource for updating * @return jsend jsend with newly stored source */ function store(Request $request, $id = null) { //////////////// // Load Data // //////////////// if ($id) { $data = Model::find($id); if (!$data) { return app()->abort(404); } } else { $data = new Model(); } /////////////////////////////////// // Assign posted data to Data // /////////////////////////////////// $data->fill($request->input()); /////////////////////////////////////////////////////////////////// // Validate data // /////////////////////////////////////////////////////////////////// # Validate Destinations $destination_id = null; if ($request->input('destination_id') && is_string($request->input('destination_id'))) { $destination = Destination::find($request->input('destination_id')); if ($destination) { $destination_id = $request->input('destination_id'); } else { return response()->json(JSend::fail('InvalidDestination : Destination not found')->asArray()); } } elseif (!is_string($request->input('destination_id'))) { return response()->json(JSend::fail('InvalidDestination : Invalid Destination format')->asArray()); } else { return response()->json(JSend::fail('InvalidDestination : Destination is required')->asArray()); } /////////////////////////// // Embeds Other Document // /////////////////////////// $data->images = $request->input('images'); $data->tags = is_array($request->input('tags')) ? $request->input('tags') : [$request->input('tags')]; $data->destination_id = $destination_id; /////////// // Store // /////////// if ($data->save()) { return response()->json(JSend::success(['data' => $data])->asArray()); } else { return response()->json(JSend::fail($data->getErrors())->asArray()); } }
function article_per_author() { /////////// // Query // /////////// $query[] = ['$match' => ['published_at' => ['$lte' => \Carbon\Carbon::now()->format('Y-m-d')]]]; $query[] = ['$group' => ['_id' => '$user_id', 'last_created_at' => ['$first' => '$created_at'], 'last_published_at' => ['$first' => '$published_at'], 'count' => ['$sum' => 1]]]; ////////////////////////////// // Get Result // ////////////////////////////// $data = []; $total_article = Article::raw(function ($collection) use($query) { return $collection->aggregate($query); }); foreach ($total_article as $key => $value) { $new = User::find($value['_id']); if ($new) { $new['total_article'] = $value['count']; $new['last_created_at'] = $value['last_created_at']; $new['last_published_at'] = $value['last_published_at']; $data[] = $new->toArray(); } } return response()->json(JSend::success(['count' => count($data), 'data' => $data])->asArray())->setCallback($this->request->input('callback')); }
/** * store a resource * @param Request $request http request * @param mixed $id id of the resource for updating * @return jsend jsend with newly stored source */ function store($id = null) { //////////////// // Load Data // //////////////// if ($id) { $data = Model::find($id); if (!$data) { return app()->abort(404); } } else { $data = new Model(); } /////////////////////////////////// // Assign posted data to Data // /////////////////////////////////// $data->fill($this->request->input()); $data->slug = Model::generateSlug($data->name, $data->_id); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // REMOVE THIS AFTERWARD // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // $data->created_at = $this->request->input('created_at'); /////////////////////////////////////////////////////////////////// // Validate data // /////////////////////////////////////////////////////////////////// # Validate Travel Agent $travel_agent = TravelAgent::find($this->request->input('travel_agent_id')); if (!$travel_agent) { return response()->json(JSend::fail(['travel_agent_id' => ['Travel Agent is not recognized']])->asArray())->setCallback($this->request->input('callback')); } $data->travel_agent_id = $travel_agent->id; /////////////////////// // EMBED IMAGES // /////////////////////// foreach ($this->request->input('images') as $x) { $images[] = new Image($x); } if (!$data->syncImages($images)) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } /////////////////////// // EMBED TAGS // /////////////////////// foreach ($this->request->input('tags') as $x) { if ($x['tag'] && $x['type']) { $tags[] = new Tag($x); } } if (!$data->syncTags($tags)) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } //////////////////////// // EMBED TourSchedule // //////////////////////// foreach ($this->request->input('schedules') as $x) { if ($x['_id']) { $tour_schedule = $data->schedules->where('_id', $x['_id'])->first(); if (!$tour_schedule) { return app()->abort(404); } $tour_schedule->fill($x); } else { $tour_schedule = new TourSchedule($x); } ////////////////////// // Sync Promo // ////////////////////// $promos = []; foreach ($x['promos'] as $promo_array) { if ($promo_array['_id']) { $promo = $tour_schedule->promos->where('_id', $promo_array['_id']['$id'])->first(); if (!$promo) { return app()->abort(404); } $promo->fill($promo_array); $promos[] = $promo; } else { $promos[] = new Promo($promo_array); } } if (!$tour_schedule->syncPromo($promos)) { return response()->json(JSend::fail($tour_schedule->getErrors())->asArray())->setCallback($this->request->input('callback')); } ////////////////////// // Sync Voucher // ////////////////////// $vouchers = []; foreach ($x['vouchers'] as $voucher_array) { if ($voucher_array['_id']) { $voucher = $tour_schedule->vouchers->where('_id', $voucher_array['_id']['$id'])->first(); if (!$voucher) { return App()->abort(404); } $voucher->fill($voucher_array); $vouchers[] = $voucher; } else { $vouchers[] = new Voucher($voucher_array); } } if (!$tour_schedule->syncVoucher($vouchers)) { return response()->json(JSend::fail($tour_schedule->getErrors())->asArray())->setCallback($this->request->input('callback')); } $tour_schedules[] = $tour_schedule; } if (!$data->syncTourSchedules($tour_schedules)) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } /////////////////////// // EMBED PACKAGE // /////////////////////// if (!$data->syncTourPackage(new TourPackage($this->request->input('package')))) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } ////////////////// // Check Top Up // ////////////////// if ($data->ads) { $older_data = $data->getOriginal(); } /////////// // Store // /////////// if ($data->save()) { $new_ads = $data->ads; if ($data->ads) { $ids_inc = []; foreach ($data->ads as $key => $value) { //1. Check if new data if (empty($value['ad_id'])) { $new_ad = $data->ads[$key]; $new_ad['ad_id'] = uniqid(); $new_ads[$key] = $new_ad; $attributes['name'] = 'Top Up'; $attributes['ads_id'] = $new_ad['ad_id']; $attributes['transact_at'] = \Carbon\Carbon::now()->format('Y-m-d'); $attributes['travel_agent']['_id'] = $data->travel_agent['_id']; $attributes['travel_agent']['name'] = $data->travel_agent['name']; $attributes['credit']['started_at'] = $data->ads[$key]['started_at']; $attributes['credit']['initial_credit'] = $data->ads[$key]['initial_credit'] * 1; $attributes['credit']['daily_rate'] = $data->ads[$key]['daily_rate'] * 1; $attributes['credit']['today_balance'] = $data->ads[$key]['today_balance'] * 1; $attributes['credit']['credit_balance'] = $data->ads[$key]['credit_balance'] * 1; $attributes['credit']['tags'] = $data->ads[$key]['tags']; $attributes['tour']['_id'] = $data['_id']; $attributes['tour']['name'] = $data['name']; $attributes['tour']['tags'] = $data['tags']->toArray(); $top_up = new TopUpLog(); $top_up->fill($attributes); if (!$top_up->save()) { $error_responses = []; foreach ($top_up->getErrors() as $field => $errors) { $error_responses[$field] = implode(', ', $errors); } return response()->json(JSend::fail($top_up->getErrors())->asArray()); } } elseif ($older_data['ads'][$key]['started_at'] != $data->ads[$key]->started_at || $older_data['ads'][$key]['initial_credit'] != $data->ads[$key]->initial_credit || $older_data['ads'][$key]['daily_rate'] != $data->ads[$key]->daily_rate || $older_data['ads'][$key]['today_balance'] != $data->ads[$key]->today_balance || $older_data['ads'][$key]['credit_balance'] != $data->ads[$key]->credit_balance) { //emptied last balance $last_balance = TopUpLog::where('ads_id', $older_data['ads'][$key]['ad_id'])->orderBy('created_at', 'desc')->first(); if ($last_balance && $last_balance['credit']['today_balance'] > 0) { $attributes['name'] = 'Emptied Top Up'; $attributes['ads_id'] = $older_data['ads'][$key]['ad_id']; $attributes['transact_at'] = \Carbon\Carbon::now()->format('Y-m-d'); $attributes['travel_agent']['_id'] = $data->travel_agent['_id']; $attributes['travel_agent']['name'] = $data->travel_agent['name']; $attributes['credit']['started_at'] = $older_data['ads'][$key]['started_at']; $attributes['credit']['initial_credit'] = $older_data['ads'][$key]['initial_credit'] * 1; $attributes['credit']['daily_rate'] = $older_data['ads'][$key]['daily_rate'] * 1; $attributes['credit']['today_balance'] = 0 * 1; $attributes['credit']['credit_balance'] = (0 - $older_data['ads'][$key]['today_balance']) * 1; $attributes['credit']['tags'] = $older_data['ads'][$key]['tags']; $attributes['tour']['_id'] = $older_data['_id']; $attributes['tour']['name'] = $older_data['name']; $attributes['tour']['tags'] = $older_data['tags']; $top_up = new TopUpLog(); $top_up->fill($attributes); if (!$top_up->save()) { $error_responses = []; foreach ($top_up->getErrors() as $field => $errors) { $error_responses[$field] = implode(', ', $errors); } return response()->json(JSend::fail($top_up->getErrors())->asArray()); } } //create new top up $new_ad = $data->ads[$key]; $new_ads[$key] = $new_ad; $attributes['name'] = 'Edited Top Up'; $attributes['ads_id'] = $new_ad['ad_id']; $attributes['transact_at'] = \Carbon\Carbon::now()->format('Y-m-d'); $attributes['travel_agent']['_id'] = $data->travel_agent['_id']; $attributes['travel_agent']['name'] = $data->travel_agent['name']; $attributes['credit']['started_at'] = $data->ads[$key]['started_at'] * 1; $attributes['credit']['initial_credit'] = $data->ads[$key]['initial_credit'] * 1; $attributes['credit']['daily_rate'] = $data->ads[$key]['daily_rate'] * 1; $attributes['credit']['today_balance'] = $data->ads[$key]['initial_credit'] * 1; $attributes['credit']['credit_balance'] = $data->ads[$key]['initial_credit'] * 1; $attributes['credit']['tags'] = $data->ads[$key]['tags']; $attributes['tour']['_id'] = $data['_id']; $attributes['tour']['name'] = $data['name']; $attributes['tour']['tags'] = $data['tags']->toArray(); $top_up = new TopUpLog(); $top_up->fill($attributes); if (!$top_up->save()) { $error_responses = []; foreach ($top_up->getErrors() as $field => $errors) { $error_responses[$field] = implode(', ', $errors); } return response()->json(JSend::fail($top_up->getErrors())->asArray()); } } if ($new_ad['ad_id']) { $ids_inc[] = $new_ad['ad_id']; } } //3. Check if deleted data foreach ($older_data['ads'] as $key => $value) { if (!in_array($value['ad_id'], $ids_inc)) { $attributes['name'] = 'Deleted Top Up'; $attributes['ads_id'] = $older_data['ads'][$key]['ad_id']; $attributes['transact_at'] = \Carbon\Carbon::now()->format('Y-m-d'); $attributes['travel_agent']['_id'] = $older_data['travel_agent']['_id']; $attributes['travel_agent']['name'] = $older_data['travel_agent']['name']; $attributes['credit']['started_at'] = $older_data['ads'][$key]['started_at'] * 1; $attributes['credit']['initial_credit'] = $older_data['ads'][$key]['initial_credit'] * 1; $attributes['credit']['daily_rate'] = $older_data['ads'][$key]['daily_rate'] * 1; $attributes['credit']['today_balance'] = 0 * 1; $attributes['credit']['credit_balance'] = (0 - $older_data['ads'][$key]['today_balance']) * 1; $attributes['credit']['tags'] = $older_data['ads'][$key]['tags']; $attributes['tour']['_id'] = $older_data['_id']; $attributes['tour']['name'] = $older_data['name']; $attributes['tour']['tags'] = $older_data['tags']; $top_up = new TopUpLog(); $top_up->fill($attributes); if (!$top_up->save()) { $error_responses = []; foreach ($top_up->getErrors() as $field => $errors) { $error_responses[$field] = implode(', ', $errors); } return response()->json(JSend::fail($top_up->getErrors())->asArray()); } } } $data->ads = $new_ads; if (!$data->save()) { return response()->json(JSend::fail($data->getErrors())->asArray()); } } return response()->json(JSend::success(['data' => $data])->asArray()); } else { $error_responses = []; foreach ($data->getErrors() as $field => $errors) { $error_responses[$field] = implode(', ', $errors); } return response()->json(JSend::fail($data->getErrors())->asArray()); } }
/** * store a resource * @param Request $request http request * @param mixed $id id of the resource for updating * @return jsend jsend with newly stored source */ function store(Request $request, $id = null) { //////////////// // Load Data // //////////////// if ($id) { $data = Model::find($id); if (!$data) { return app()->abort(404); } } else { $data = new Model(); } /////////////////////////////////// // Assign posted data to Data // /////////////////////////////////// $data->fill($request->input()); /////////////////////////////////////////////////////////////////// // Validate data // /////////////////////////////////////////////////////////////////// # Validate User if ($request->input('user_id')) { if (!is_scalar($request->input('user_id'))) { return response()->json(JSend::fail(['user' => ['Invalid User']])->asArray()); } else { $user = User::find($request->input('user_id')); if (!$user) { return response()->json(JSend::fail(['user' => ['Invalid User']])->asArray()); } $data->user_id = $request->input('user_id'); } } /////////////////////////// // Embeds Other Document // /////////////////////////// /////////////////////// // EMBED IMAGES // /////////////////////// foreach ($this->request->input('images') as $x) { $images[] = new Image($x); } if (!$data->syncImages($images)) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } /////////////////////// // EMBED TAGS // /////////////////////// foreach ($this->request->input('tags') as $x) { $tags[] = new Tag($x); } if (!$data->syncTags($tags)) { return response()->json(JSend::fail($data->getErrors())->asArray())->setCallback($this->request->input('callback')); } /////////// // Store // /////////// if ($data->save()) { return response()->json(JSend::success(['data' => $data])->asArray()); } else { return response()->json(JSend::fail($data->getErrors())->asArray()); } }
/** * issue close session * * 1. validate grant type and validate required params based on grant types * 2. grant access token **/ public function destroySession() { //1. validate grant type and validate required params based on grant types $is_grant_valid = new VoGT(); if ($is_grant_valid->validate($this->request->input())) { //2. grant access token $is_accessed = call_user_func([$this->auth_server, $this->request->input('grant_type')], $this->request->input(), $_SERVER['REMOTE_ADDR']); if (!$is_accessed) { $this->errors->add('Access', $this->auth_server->getError()); } else { return response()->json(JSend::success(['status' => 'closed'])->asArray()); } } else { $this->errors->add('Access', $is_grant_valid->getError()); } if ($this->errors->count()) { \Log::info(json_encode($this->getError())); return response()->json(JSend::error($this->request->input(), $this->getError())->asArray()); } }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function getDelete($id) { // $location = Location::find($id); if (!$location) { return response()->json(JSend::fail(['Data not found'])->encode()); } if ($location->delete()) { return response()->json(JSend::success($location->toArray())->encode()); } else { return response()->json(JSend::fail($location->getErrors()->toArray())->encode()); } }
function validated_voucher() { /////////////////// // GET PARAMETER // /////////////////// $filters = $this->request->only('start_date', 'end_date', 'travel_agent_id', 'skip', 'take'); $filters['take'] = min(max(1, $filters['take'] * 1), 50); $filters['skip'] = $filters['skip'] * 1; /////////// // Query // /////////// if ($filters['travel_agent_id']) { $query[][] = ['travel_agent_id' => $filters['travel_agent_id']]; } //////////////// // Start Date // //////////////// if (!$filters['start_date']) { $start_date = new \MongoDate(\Carbon\Carbon::now()->subDays(30)->timestamp); } else { try { $start_date = new \MongoDate(\Carbon\Carbon::parse($filters['start_date'])->timestamp); } catch (\Exception $e) { return response()->json(JSend::fail(['start' => ['Invalid start_date parameter: invalid date']])->asArray())->setCallback($this->request->input('callback')); } } ////////////// // End Date // ////////////// if (!$filters['end_date']) { $end_date = new \MongoDate(\Carbon\Carbon::now()->timestamp); } else { try { $end_date = new \MongoDate(\Carbon\Carbon::parse($filters['end_date'])->timestamp); } catch (\Exception $e) { return response()->json(JSend::fail(['start' => ['Invalid end_date parameter: invalid date']])->asArray())->setCallback($this->request->input('callback')); } } ////////////////////////////// // Compare Start & End Date // ////////////////////////////// if ($start_date > $end_date) { $tmp = $start_date; $start_date = $end_date; $end_date = $tmp; } if ($start_date) { $query[] = ['$match' => ['validated_at' => ['$gte' => $start_date, '$lte' => $end_date]]]; } ////////// // SORT // ////////// $query[] = ['$group' => ['_id' => ['year' => ['$year' => '$validated_at'], 'month' => ['$month' => '$validated_at'], 'day' => ['$dayOfMonth' => '$validated_at']], 'count' => ['$sum' => 1]]]; $vouchers = IssuedVoucher::raw(function ($collection) use($query) { return $collection->aggregate($query); }); if ($vouchers['ok']) { return response()->json(JSend::success(['data' => $vouchers['result']])->asArray())->setCallback($this->request->input('callback')); } else { return response()->json(JSend::fail(['InvalidCalculation' => 'Invalid Calculation'])->asArray())->setCallback($this->request->input('callback')); } }
function tour_compare_remove() { $id = request()->input('id'); if ($id) { $comparison = session()->get('tour_comparison'); if ($comparison instanceof Collection) { $except_removed_comparison = $comparison->filter(function ($item) use($id) { return !str_is($id, $item->_id); }); session()->put('tour_comparison', $except_removed_comparison); } return response()->json(JSend::success($except_removed_comparison->toArray())->asArray()); } else { return app()->abort(400); } }
function issued() { ///////////////// // Load Filter // ///////////////// $filters = $this->request->only('code', 'status', 'skip', 'take', 'sort', 'with_count'); $filters['skip'] = max((int) $filters['skip'], 0); $filters['take'] = min((int) $filters['take'], 100); /////////// // Query // /////////// $q = new IssuedVoucher(); if ($filters['code']) { $q = $q->code($filters['code']); } switch (strtolower($filters['status'])) { case 'validated': $q = $q->validated(); break; case 'unvalidated': $q = $q->unvalidated(); break; default: # code... break; } if ($filters['with_count']) { $count = $q->count(); } switch (strtolower($filters['sort'])) { case 'latest-validated': $q = $q->latest('validated_at'); break; default: $q = $q->latest('created_at'); # code... break; } $data = $q->with('tour', 'tour.travel_agent', 'user')->skip($filters['skip'])->take($filters['take'])->get(); ////////////// // Response // ////////////// return response()->json(JSend::success(['count' => $count, 'data' => $data])->asArray())->setCallback($this->request->input('callback')); }
/** * delete * @param Request $this->request [description] * @param [type] $id [description] * @return [type] [description] */ public function destroy($id = null) { //////////////// // Load Data // //////////////// if ($id) { $data = Model::find($id); if (!$data) { return app()->abort(404); } } else { $data = new Model(); } /////////// // Store // /////////// if ($data->delete()) { return response()->json(JSend::success(['data' => $data])->asArray()); } else { return response()->json(JSend::fail($data->getErrors())->asArray()); } }
function unsubscribe() { /////////////// // GET Email // /////////////// $email = $this->request->input('email'); $unsubscription_token = $this->request->input('token'); //////////////////////// // Check In Database // //////////////////////// $data = Model::email($email)->first(); if (!$data) { return App::abort(404); } ////////////////// // Unsubscribe // ////////////////// if (str_is($data->unsubscription_token, $unsubscription_token)) { $data->is_subscribe = false; $data->save(); return response()->json(JSend::success(['count' => $count, 'data' => $data->toArray()])->asArray())->setCallback($this->request->input('callback')); } else { return response()->json(JSend::fail(['email' => ['Invalid Token, fail to unsubscribe']]))->setCallback($this->request->input('callback')); } }
function homepage_projection() { $projections = []; $query[] = ['$match' => ['ads.today_balance' => ['$gt' => 0]]]; /////////// // Query // /////////// $data = Tour::with('travel_agent')->raw(function ($collection) use($query) { return $collection->aggregate($query); }); ////////////////////////////// // Get Result // ////////////////////////////// foreach ($data as $key2 => $value2) { foreach ($value2->ads as $key3 => $value3) { $last_balance = $value3['today_balance']; $daily_rate = $value3['daily_rate']; $initial_credit = $value3['initial_credit']; while ($last_balance > 0) { $started = \Carbon\Carbon::parse($value2['started_at']); $days = $started->addDays(($initial_credit - $last_balance) / $daily_rate); $projection['on'] = $days->format('Y-m-d'); $projection['balance'] = $last_balance; $projection['tour'] = ['_id' => $value2['_id'], 'name' => $value2['name']]; $projection['travel_agent'] = ['_id' => $value2['travel_agent']['_id'], 'name' => $value2['travel_agent']['name']]; $last_balance = $last_balance - $daily_rate; $projections[] = $projection; } } } return response()->json(JSend::success(['count' => count($data), 'data' => $projections])->asArray())->setCallback($this->request->input('callback')); }
/** * sign in * @param Request $this->request http request * @return jsend jsend with logged in user */ function authenticate() { /////////////////// // Check request // /////////////////// if (!$this->request->has('email') || !$this->request->has('password') || !$this->request->has('auth')) { return response()->json(JSend::fail('Unauthorized Access')->asArray()); } //////////////// // Find email // //////////////// $user = Model::email($this->request->input('email'))->first(); if (!$user) { return response()->json(JSend::fail('Unauthorized Access')->asArray()); } else { /////////////////////// // Validate password // /////////////////////// if (!Hash::check($this->request->input('password'), $user->password)) { return response()->json(JSend::fail('Unauthorized Access')->asArray()); } else { $required_auth = $this->request->input('auth'); foreach ($user->auth->{$required_auth} as $auth_type => $is_auth) { if ($is_auth) { return response()->json(JSend::success(['data' => $user->toArray()])->asArray()); } } return response()->json(JSend::fail('Unauthorized Access')->asArray()); } } }