fractal->collection($request->user()->sshKeys) ->transformWith($this->getTransformer(UserSSHKeyTransformer::class)) ->toArray(); } /** * Stores a new SSH key for the authenticated user's account. */ public function store(StoreSSHKeyRequest $request): array { $model = $request->user()->sshKeys()->create([ 'name' => $request->input('name'), 'public_key' => $request->getPublicKey(), 'fingerprint' => $request->getKeyFingerprint(), ]); Activity::event('user:ssh-key.create') ->subject($model) ->property('fingerprint', $request->getKeyFingerprint()) ->log(); return $this->fractal->item($model) ->transformWith($this->getTransformer(UserSSHKeyTransformer::class)) ->toArray(); } /** * Deletes an SSH key from the user's account. */ public function delete(ClientApiRequest $request): JsonResponse { $this->validate($request, ['fingerprint' => ['required', 'string']]); $key = $request->user()->sshKeys() ->where('fingerprint', $request->input('fingerprint')) ->first(); if (!is_null($key)) { $key->delete(); Activity::event('user:ssh-key.delete') ->subject($key) ->property('fingerprint', $key->fingerprint) ->log(); } return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT); } }