user()->account->contactFieldTypes; } /** * Store a newly created resource in storage. * * @param Request $request * @return string */ public function storeContactFieldType(Request $request) { Validator::make($request->all(), [ 'name' => 'required|max:255', 'icon' => 'max:255|nullable', 'protocol' => 'max:255|nullable', ])->validate(); return auth()->user()->account->contactFieldTypes()->create( $request->only([ 'name', 'protocol', ]) + [ 'fontawesome_icon' => $request->get('icon'), 'account_id' => auth()->user()->account_id, ] ); } /** * Edit a newly created resource in storage. * * @param Request $request * @param string $contactFieldTypeId * @return \Illuminate\Http\Response */ public function editContactFieldType(Request $request, $contactFieldTypeId) { try { $contactFieldType = ContactFieldType::where('account_id', auth()->user()->account_id) ->findOrFail($contactFieldTypeId); } catch (ModelNotFoundException $e) { return response()->json([ 'errors' => [ 'message' => trans('app.error_unauthorized'), ], ]); } Validator::make($request->all(), [ 'name' => 'required|max:255', 'icon' => 'max:255|nullable', 'protocol' => 'max:255|nullable', ])->validate(); $contactFieldType->update( $request->only([ 'name', 'protocol', ]) + [ 'fontawesome_icon' => $request->get('icon'), ] ); return $contactFieldType; } /** * Destroy the contact field type. */ public function destroyContactFieldType(Request $request, $contactFieldTypeId) { try { $contactFieldType = ContactFieldType::where('account_id', auth()->user()->account_id) ->findOrFail($contactFieldTypeId); } catch (ModelNotFoundException $e) { return response()->json([ 'errors' => [ 'message' => trans('app.error_unauthorized'), ], ]); } if (! $contactFieldType->delible) { return response()->json([ 'errors' => [ 'message' => trans('app.error_unauthorized'), ], ]); } // find all the contact fields that have this contact field types $contactFields = auth()->user()->account->contactFields ->where('contact_field_type_id', $contactFieldTypeId); foreach ($contactFields as $contactField) { $contactField->delete(); } $contactFieldType->delete(); } }