/** * 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); } }
/** * 获得设备安装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); }
/** * 设备信息更新 * 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); }
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); }
/** * ApiController constructor. */ public function __construct() { // Config::set('session.driver', 'array'); Session::setDefaultDriver(NULL); $this->device = Device::current(); }