/** * Store an organisation * 1. store organisation * 2. store branch * * @param organisation * @return Response */ public function store() { if (!Input::has('organisation')) { return new JSend('error', (array) Input::all(), 'Tidak ada data Organisation.'); } $errors = new MessageBag(); DB::beginTransaction(); //1. Validate Organisation Parameter $organisation = Input::get('organisation'); if (is_null($organisation['id'])) { $is_new = true; } else { $is_new = false; } $organisation_rules = ['name' => 'required|max:255', 'code' => 'required|max:255']; //1a. Get original data $organisation_data = \App\ThunderID\OrganisationManagementV1\Models\Organisation::findornew($organisation['id']); //1b. Validate Basic Organisation Parameter $validator = Validator::make($organisation, $organisation_rules); if (!$validator->passes()) { $errors->add('Organisation', $validator->errors()); } else { //if validator passed, save Organisation $organisation_data = $organisation_data->fill($organisation); if (!$organisation_data->save()) { $errors->add('Organisation', $organisation_data->getError()); } } //End of validate Organisation if ($errors->count()) { DB::rollback(); return new JSend('error', (array) Input::all(), $errors); } DB::commit(); $final_organisation = \App\ThunderID\OrganisationManagementV1\Models\Organisation::id($organisation_data['id'])->with(['branches', 'policies'])->first()->toArray(); return new JSend('success', (array) $final_organisation); }