Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 /**
  * 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();
 }
Exemplo n.º 3
0
 /**
  * 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);
 }
Exemplo n.º 5
0
 public function testNoResultsfindPairs()
 {
     $pairs = Car::where('id', 10)->find_pairs('id', 'name');
     $this->assertNull($pairs);
 }