Пример #1
0
 /**
  * Store a point
  *
  * @return Response
  */
 public function store()
 {
     if (!Input::has('point')) {
         return new JSend('error', (array) Input::all(), 'Tidak ada data point.');
     }
     $errors = new MessageBag();
     DB::beginTransaction();
     //1. Validate Point Parameter
     $point = Input::get('point');
     if (is_null($point['id'])) {
         $is_new = true;
     } else {
         $is_new = false;
     }
     //1. Get original data
     $point_data = \App\Models\PointLog::findornew($point['id']);
     if (!$errors->count()) {
         $point_rules = ['user_id' => 'required|exists:users,id', 'amount' => 'required|numeric', 'expired_at' => 'required|date_format:"Y-m-d H:i:s"', 'notes' => 'required'];
         $validator = Validator::make($point, $point_rules);
         if (!$validator->passes()) {
             $errors->add('Point', $validator->errors());
         } else {
             $point_data = new \App\Models\PointLog();
             $point_data = $point_data->fill($point);
             if (!$point_data->save()) {
                 $errors->add('Point', $point_data->getError());
             }
         }
     }
     if ($errors->count()) {
         DB::rollback();
         return new JSend('error', (array) Input::all(), $errors);
     }
     DB::commit();
     $final_point = \App\Models\PointLog::id($point_data['id'])->with(['user'])->first()->toArray();
     return new JSend('success', (array) $final_point);
 }