public function store() { $limit = 2; if (!Input::has('number')) { return $this->respondInsufficientPrivileges('No car number'); } $number = Input::get('number'); $car = Car::where('number', $number)->first(); if (!$car) { return $this->respondNotFound('Car not found'); } $user = $car->user; if (!$user) { return $this->respondNotFound('User not found'); } if ($user == $this->user) { return $this->respondInsufficientPrivileges('Cant send to yourself'); } $emergency = new Emergency(['sender' => $this->user->id, 'receiver' => $user->id, 'number' => $car->number, 'created_at' => Carbon::now(), 'status' => 'отправлено']); $emergency->sender_phone = $this->user->phone->number; //FIXME later add custom error to apicontroller if ($this->user->urgent_calls == 0) { return Response::json(['error' => ['message' => 'Вы исчерпали лимит срочных вызовов (' . $limit . ' в день)', 'status_code' => 1003]], 403); } $this->user->urgent_calls--; $this->user->emergencies()->save($emergency); $this->user->save(); Queue::later(30, 'smsSender', $emergency); Queue::later(60, 'smsChecker', $emergency->id); $response['emergencies'] = ['id' => $emergency->id, 'sender' => $emergency->sender, 'created_at' => $emergency->created_at, 'number' => $emergency->number, 'phone_number' => $emergency->sender_phone, 'delivered_at' => $emergency->delivered_at, 'status' => $emergency->status, 'via_sms' => false, 'complained_at' => $emergency->complained_at, 'failed' => $emergency->failed]; $response['tries'] = $this->user->urgent_calls; $urgentCalls = $this->user->urgent_calls; $emergency->phone_number = (int) $this->user->phone->number; $emergency->receiverU->devices->each(function ($device) use($emergency, $urgentCalls) { $stateSender = new StateSender($device->auth_token); $stateSender->setEmergencyAdded($emergency, $urgentCalls); $stateSender->send(); }); // Probably wiser to send state to self as well, and show only by response from state // $emergency->getMembersTokens()->each(function ($token) use($emergency, $urgentCalls) { // $stateSender = new StateSender($token->auth_token); // $stateSender->setEmergencyAdded($emergency, $this->user->urgent_calls); // $stateSender->send(); // }); return $this->respond($response); }
/** * Create new chat * @return CarChat|\Illuminate\Http\JsonResponse */ public function store() { $number = Input::get('number'); $car = Car::where('number', Input::get('number'))->first(); if (!$car) { return $this->respondNotFound('user.car-not-found'); } if (!$car->user) { return $this->respondNotFound('user.not-found'); } if ($car->user->id == $this->user->id) { return $this->respondInsufficientPrivileges('user.self-car-talk'); } if ($car->user->delete_at) { return $this->respondNotFound('user.not-associated-with-car'); } if ($this->user->isBlocked($car->user->id)) { return $this->respondInsufficientPrivileges('user.blocked'); } if ($this->user->sex == $car->user->sex) { return $this->respondInsufficientPrivileges('chat.same-sex'); } if (!$car->user->enable_carchats) { return $this->respondInsufficientPrivileges('chat.carchats-not-accepting'); } $chat = CarChat::byNumber($car->number)->where('owner_id', $this->user->id)->first(); //TODO if was deleted by all side remove deleted flag if ($chat) { $chat->load(['owner', 'receiver', 'receiverCar']); if ($chat->isOwner($this->user->id)) { $chat->deleted_by_owner = false; } else { $chat->deleted_by_receiver = false; } if ($chat->save()) { return $this->respond($this->collectionTransformer->transformChat($chat, $this->user->id)); } } $chat = new CarChat(['number' => $car->number, 'receiver_id' => $car->user_id, 'receiver_car_id' => $car->id]); $chat->updated_at = Carbon::now(); if ($this->user->myCarChats()->save($chat)) { return $this->respond($this->collectionTransformer->transformChat($chat, $this->user->id)); } return $this->respondServerError(); }
/** * function name : delete * edit data c_cars * get */ public function del_car($id) { if (Session::get('level') == '1') { $result = Car::where('car_id', $id)->delete(); if ($result) { return Redirect::to('cars')->with('success_message', 'ลบข้อมูลเรียบร้อยแล้ว'); } else { return Redirect::to('cars')->with('error_message', 'ไม่สามารถลบข้อมูลได้ กรุณาแจ้งผู้ดูแลระบบ'); } } else { $data = DB::Select('select car_id, car_number, brand, model, car_img from c_cars'); return View::make('home.index', array('data' => $data)); } }
public function getSearch() { $keyword = Input::get('keyword'); return View::make('store.search')->with('cars', Car::where('title', 'LIKE', '%' . $keyword . '%')->get())->with('keyword', $keyword); }
public function testNoResultsfindPairs() { $pairs = Car::where('id', 10)->find_pairs('id', 'name'); $this->assertNull($pairs); }