diff --git a/app/Http/Controllers/ApiItemController.php b/app/Http/Controllers/ApiItemController.php new file mode 100644 index 00000000..74e69595 --- /dev/null +++ b/app/Http/Controllers/ApiItemController.php @@ -0,0 +1,105 @@ +middleware('apikey'); + + $key = $request->input('api_key'); + if ($key) { + $details = SettingUser::where('setting_id', 12)->where('uservalue', $key)->first(); + $this->api_key = $key; + $this->user = User::find($details->user_id); + } + } + + /** + * Display a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return $this->user->items; + } + + /** + * Show the form for creating a new resource. + * + * @return \Illuminate\Http\Response + */ + public function create() + { + + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $request->merge([ + 'user_id' => $this->user->id + ]); + // die(print_r($request->all())); + Item::create($request->all()); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + // + } + + /** + * Show the form for editing the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function edit($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } +} diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index afcec249..d08b824c 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -8,6 +8,7 @@ use App\SettingGroup; use App\User; use Illuminate\Support\Facades\Auth; use App\Http\Controllers\Controller; +use Illuminate\Support\Str; class SettingsController extends Controller { @@ -77,7 +78,8 @@ class SettingsController extends Controller $path = $request->file('value')->store('backgrounds'); $setting_value = $path; } - + } elseif ($setting->type == 'apikey') { + $setting_value = Str::random(40); } else { $setting_value = $data->value; } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index e9e665a6..358d1e6f 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -58,5 +58,6 @@ class Kernel extends HttpKernel 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'apikey' => \App\Http\Middleware\UserApiKey::class, ]; } diff --git a/app/Http/Middleware/UserApiKey.php b/app/Http/Middleware/UserApiKey.php new file mode 100644 index 00000000..b551a9ae --- /dev/null +++ b/app/Http/Middleware/UserApiKey.php @@ -0,0 +1,30 @@ +input('api_key'); + $details = SettingUser::where('setting_id', 12)->where('uservalue', $key)->first(); + // die(var_dump($details)); + if($details === null) { + return response()->json([ + 'status' => 401, + 'message' => 'invalid api key' + ], 401); + } + return $next($request); + } +} diff --git a/app/Setting.php b/app/Setting.php index 7264d367..1d788071 100644 --- a/app/Setting.php +++ b/app/Setting.php @@ -134,7 +134,15 @@ class Setting extends Model $value = Form::select('value', $options, null, ['class' => 'form-control']); break; case 'textarea': - $value = Form::textarea('value', null, ['class' => 'form-control', 'cols' => '44', 'rows' => '15']); + $value = Form::textarea('value', null, ['class' => 'form-control', 'cols' => '44', 'rows' => '15', 'style' => 'width: 100%;']); + break; + case 'apikey': + if (isset($this->value) && !empty($this->value)) { + $value = Form::text('value', null, ['class' => 'form-control']); + } else { + $value = '