Ejemplo n.º 1
0
 /**
  * Store an admin
  *
  * @return Response
  */
 public function store()
 {
     if (!Input::has('admin')) {
         return new JSend('error', (array) Input::all(), 'Tidak ada data admin.');
     }
     $errors = new MessageBag();
     DB::beginTransaction();
     //1. Validate Admin Parameter
     $admin = Input::get('admin');
     if (is_null($admin['id'])) {
         $is_new = true;
     } else {
         $is_new = false;
     }
     $admin_rules = ['name' => 'required|max:255', 'email' => 'required|max:255|unique:users,email,' . (!is_null($admin['id']) ? $admin['id'] : ''), 'role' => 'required|in:admin,store_manager,staff', 'is_active' => 'boolean', 'gender' => 'in:male,female', 'date_of_birth' => 'date_format:"Y-m-d H:i:s"'];
     //1a. Get original data
     $admin_data = \App\Models\Admin::findornew($admin['id']);
     //1b. Validate Basic Admin Parameter
     $validator = Validator::make($admin, $admin_rules);
     if (!$validator->passes()) {
         $errors->add('Admin', $validator->errors());
     } else {
         //if validator passed, save admin
         $admin_data = $admin_data->fill($admin);
         if (!$admin_data->save()) {
             $errors->add('Admin', $admin_data->getError());
         }
     }
     if ($errors->count()) {
         DB::rollback();
         return new JSend('error', (array) Input::all(), $errors);
     }
     DB::commit();
     $final_admin = \App\Models\Admin::id($admin_data['id'])->with(['audits'])->first()->toArray();
     return new JSend('success', (array) $final_admin);
 }