Advertisement
nugrohoe_ku

rest api register with myth auth

Jan 29th, 2021
5,382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.26 KB | None | 0 0
  1. public function create()
  2.     {  
  3.         // http://localhost:8080/api/v1/users
  4.         // parameter yang harus diisi: (method post)
  5.         // {
  6.         //     "username": "The username field is required.",
  7.         //     "email": "The email field is required.",
  8.         //     "password": "The password field is required.",
  9.         //     "pass_confirm": "The pass_confirm field is required.",
  10.         //     "fullname": "The fullname field is required.",
  11.         //     "phone": "The phone field is required.",
  12.         //     "nik": "The nik field is required."
  13.         // }
  14.  
  15.         // Check if registration is allowed
  16.         if (!$this->config->allowRegistration)
  17.         {
  18.             return $this->respond(lang('Auth.registerDisabled') ?? $this->failServerError());
  19.         }
  20.  
  21.         $users = model(UserModel::class);
  22.         // Validate here first, since some things,
  23.         // like the password, can only be validated properly here.
  24.         $rules = [
  25.             'username'      => "required|alpha_numeric_space|min_length[3]|is_unique[users.username]",
  26.             'email'         => "required|valid_email|is_unique[users.email]",
  27.             'password'      => "required|strong_password",
  28.             'pass_confirm'  => "required|matches[password]",
  29.             //tambahan
  30.             // 'fullname'      => "required|max_length[255]",
  31.             // 'phone'         => 'required|max_length[15]',
  32.             // 'nik'           => 'required|numeric|max_length[255]',
  33.         ];
  34.  
  35.         //jika validasi error
  36.         if (!$this->validate($rules))
  37.         {
  38.             return $this->respond($this->validator->getErrors());
  39.         }
  40.  
  41.         // Save the user
  42.         $allowedPostFields = array_merge(['avatar','password','fullname','phone','nik'], $this->config->validFields, $this->config->personalFields);
  43.         $data = $this->request->getPost($allowedPostFields);
  44.  
  45.         // print_r($data);
  46.         // die;
  47.  
  48.         $user = new User($data);
  49.  
  50.         $this->config->requireActivation !== false ? $user->generateActivateHash() : $user->activate();
  51.  
  52.         // Ensure default group gets assigned if set
  53.         if (!empty($this->config->defaultUserGroup)) {
  54.             $users = $users->withGroup($this->config->defaultUserGroup);
  55.         }
  56.  
  57.         //jika user gagal register
  58.         if (!$users->save($user))
  59.         {
  60.             return $this->respond($users->errors());
  61.         }
  62.  
  63.         if ($this->config->requireActivation !== false)
  64.         {
  65.             $activator = service('activator');
  66.             $sent = $activator->send($user);
  67.  
  68.             if (!$sent)
  69.             {
  70.                 return $this->respond($activator->error() ?? lang('Auth.unknownError'));
  71.             }
  72.  
  73.             // jika aktifasi diaktifkan maka wajib cek email
  74.             $aktifasi = [
  75.                 'status' => 200,
  76.                 'success' => TRUE,
  77.                 'message' => 'registrasi selesai, silahkan cek email anda untuk verifikasi'
  78.             ];
  79.  
  80.             return $this->respond($aktifasi);
  81.         }
  82.  
  83.         $get_user = $this->modelUser->where('username', $user->username)->first();
  84.        
  85.         // untuk simpan setting default
  86.         $setting_entity = new SettingNotifEntity();
  87.         $setting_entity->id_penyewa = $get_user->id;
  88.         $setting_entity->reminder_pembayaran = 7;
  89.         $this->setting->save($setting_entity);
  90.  
  91.         //print_r($user);
  92.  
  93.         // Register benar benar Success!
  94.         return $this->respond($get_user);
  95.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement