コード例 #1
0
ファイル: PushController.php プロジェクト: imjerrybao/PushApp
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $device = Device::current();
     if (Input::hasFile('file')) {
         $inputFile = Input::file('file');
         $package = Package::createFromInputFile($inputFile, $device->user_id);
     } else {
         $package = Package::findOrFailFromArg(Input::get('package'), $device->user_id);
     }
     $ids = explode(',', Input::get('devices'));
     if (count($ids) == 1 && !is_numeric($ids[0])) {
         $token = Token::whereValue($ids[0])->valid()->first();
         if ($token) {
             $devices = Device::whereId($token->owner)->get();
         } else {
             return Response::error(trans('errors.expired_device_qrcode') . $ids[0], 400);
         }
     }
     if (empty($devices)) {
         $devices = Device::whereIn('id', $ids)->where(function ($query) use($device) {
             $query->whereUserId($device->user_id)->orWhere(function ($query) use($device) {
                 $authed_device_ids = DUAuth::whereUserId($device->user_id)->lists('device_id');
                 $query->whereIn('id', $authed_device_ids);
             });
         })->get();
     }
     try {
         $push = Push::send($devices, $package, $device->user_id);
         return Response::json($push);
     } catch (\Exception $e) {
         return Response::exception($e);
     }
 }
コード例 #2
0
ファイル: Token.php プロジェクト: imjerrybao/PushApp
 /**
  * 获得设备安装token
  * @return Token
  */
 public static function obtainDevice()
 {
     if (Device::current() == null) {
         throw new UnauthorizedException(trans('errors.unauthorized'), 401);
     }
     /**
      * 十分钟内有效
      */
     return static::generate(Device::current()->id, 10, static::$type_device);
 }
コード例 #3
0
 /**
  * 设备信息更新
  * Update the specified resource in storage.
  *
  * @param  Request $request
  * @param  int $id
  * @return Response
  */
 public function update(Request $request, $id)
 {
     $device = Device::current();
     if ($device->id != $id) {
         App::abort(403);
     }
     $data = $request::only(['alias', 'network_type']);
     $data = array_filter($data, 'strlen');
     $validator = Validator::make($data, Device::update_rules($device->user_id), Device::messages());
     if ($validator->fails()) {
         return Response::errors($validator->errors(), 400);
     }
     $device->fill($data);
     $device->save();
     return Response::json($device);
 }
コード例 #4
0
 public function getIndex()
 {
     $device = Device::current();
     $packages = Package::join('pushes', 'packages.id', '=', 'pushes.package_id')->join('push_devices', 'pushes.id', '=', 'push_devices.push_id')->where('push_devices.device_id', '=', $device->id)->orderBy('pushes.created_at', 'desc')->groupBy('packages.id')->select('packages.*', 'pushes.id as push_id')->paginate(30);
     return Response::json($packages);
 }
コード例 #5
0
ファイル: ApiController.php プロジェクト: imjerrybao/PushApp
 /**
  * ApiController constructor.
  */
 public function __construct()
 {
     //		Config::set('session.driver', 'array');
     Session::setDefaultDriver(NULL);
     $this->device = Device::current();
 }