/var/www/vhosts/nabawater/frontend/controllers
Edit: /var/www/vhosts/nabawater/frontend/controllers/UserController.php (45653B)
google
[state] => fba7a556afc3bb3001467f15fb84255299d87e55fd3b1ef5917caf2b314b17ea
[code] => 4/XQDnrI_QBVyZrQo1IwYjyuaW-JqUk1c5UnMYTxGO1Z0pv7IrYghXJWB0zRIqXxx-K8thHcMVWtNoCE2vrIXfZLQ
[scope] => https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
)
*/
/**
* @return array
*/
public function actions()
{
return [
'auth' => [
'class' => 'yii\authclient\AuthAction',
'cancelCallback' => [$this, 'onAuthSuccess'],
'successCallback' => [$this, 'onAuthSuccess'],
],
];
}
/**
*
* @param type $client
*/
public function onAuthSuccess($client)
{
$url = Url::previous();
(new AuthHandler($client))->handle();
}
/**
*
* @throws \Exception
* @throws \Throwable
*/
public function actionOtpGenerterForLogin()
{
$request = Yii::$app->getRequest()->post();
$response = ['status' => STATUS_FAIL, 'msg' => '', 'errors' => []];
$model = new LoginForm();
$model->setScenario($model::SCENARIO_LOGIN_MOBILE);
if ($model->load($request)) {
$user = User::find()
->where(['mobile_number' => $model->username])
->andwhere(['<>','status', User::DELETE])
->one();
if($user == null){
$response['msg'] = yii::t('frontend','Mobile number does not exist. Please Register and continue');
goto skip;
}
if($user->status == User::INACTIVE){
$response['msg'] = Yii::t('frontend', 'Sorry, Your accound blocked by admin, Please contact Admin');
goto skip;
}
$user->otp = OtpTemp::generateOtp();
//$user->otp = 1234;
$user->save(false);
Com::send_sms($user->mobile_number, Configuration::get(Configuration::APP_NAME).' - Please use '.$user->otp.' for login.');
$response['status'] = User::STATUS;
$response['msg'] = Yii::t('frontend', 'OTP sent to your mobile number');
} else {
$response['errors'] = $this->prepareErrors($model);
}
skip:
return $this->asJson($response);
}
/**
*
* @throws \Exception
* @throws \Throwable
*/
public function actionLogin()
{
//$otp = 1234;
//Com::send_sms(548200100, Configuration::get(Configuration::APP_NAME).' - Thank you for registering with us, Please use '.$otp.' to complete your registration');
$request = Yii::$app->getRequest()->post();
$response = ['status' => STATUS_FAIL, 'msg' => '', 'errors' => []];
$model = new LoginForm();
$model->setScenario($model::SCENARIO_LOGIN_DEFAULT);
if ($model->load($request) && $model->login()) {
$user = Yii::$app->getUser()->getIdentity();
$model = User::findOne(['user_key' => $user->user_key]);
$model->generateAuthKey();
$model->save(false);
Com::successFlash(yii::t('frontend','User logged in successfully'));
$response['status'] = User::STATUS;
} else {
/*Com::failureFlash('Invalid username');*/
$response['msg'] = Yii::t('backend','Invalid OTP');
}
return $this->asJson($response);
}
/**
* @throws \yii\base\InvalidParamException
* @throws \yii\base\Exception
*/
public function actionRegister()
{
$request = Yii::$app->getRequest()->post();
$response = ['status' => STATUS_FAIL, 'msg' => '', 'errors' => []];
unset($request['country_name_qq']);
$modelUser = new User();
$user_temp = new OtpTemp();
$modelUser->setScenario($modelUser::SCENARIO_REGISTER_NORMAL_TYPE);
$modelUser->load($request);
$modelUser->setPassword($modelUser->password);
$modelUser->status = $modelUser::STATUS_ACTIVE;
$modelUser->referral_code = Com::generateRandomString(5, true);
$request['User']['mobile_number'] = $request['User']['mobile_number'];
if(!$modelUser->validate()) {
$response['errors'] = $this->prepareErrors($modelUser);
}
$model = User::find()
->where(['email' => $request['User']['email']])
->andWhere('status = 1 or status = 2')
->one();
if($model != null) {
/* Com::failureFlash('User Already registered ');*/
$response = ['status'=> Com::UNAUTHORIZED,'errors' => yii::t('frontend','Email Already Exists')];
return $this->asJson($response);
/* $response['errors'] = $this->prepareErrors($modelUser);*/
}
$modelMobile = User::find()
->where(['mobile_number' => $request['User']['mobile_number']])
->andWhere('status = 1 or status = 2')
->one();
if($modelMobile != null){
$response = ['errors' => yii::t('frontend','Mobile Number Already Exists')];
return $this->asJson($response);
}
// $phone = preg_replace('/[^\dxX]/', '', $request['User']['mobile_number']);
// $modelMobileNew = User::find()
// ->where(['mobile_number' => $phone])
// ->andWhere('status = 1 or status = 2')
// ->one();
// if($modelMobileNew != null){
// $response = ['errors' => yii::t('frontend','Mobile Number Already Exists')];
// return $this->asJson($response);
// }
$otp = OtpTemp::generateOtp();
// $otp = 1234;
$user_temp->email = $modelUser->email;
$country_code = $request['country_code'];
$user_temp->mobile_no = $modelUser->mobile_number;
$user_temp->user_details = Json::encode($request);
$user_temp->otp = $otp;
if($user_temp->save()){
$mail = \common\helpers\Mailer::getInstance()
->setTo($modelUser->email)
->setSubject('Verify OTP')
->setMessage(Configuration::get(Configuration::APP_NAME). ' - Thank you for registering with us, Please use '.$otp.' to complete your registration')
->send();
//$msg = Com::send_sms($user_temp->mobile_no, $otp);
Com::send_sms($user_temp->mobile_no, Configuration::get(Configuration::APP_NAME).' - Thank you for registering with us, Please use '.$otp.' to complete your registration');
//$status = SmsGateway::getInstance()->sendSMS($user_temp->mobile_no, Configuration::get(Configuration::APP_NAME).' - Thank you for registering with us, Please use '.$otp.' to complete your registration');
$response = ['status'=> Com::SUCCESS,'otp_id' => $user_temp->otp_temp_id];
return $this->asJson($response); exit;
}
return $this->asJson($response);
}
public function actionOtpVerify()
{
$request = Yii::$app->getRequest()->post();
$model = OtpTemp::find()
->where(['otp_temp_id' => $request['otp_id']])
->one();
if( $request['OTP'] == $model->otp ){
$modelUser = new User();
$modelUser->setScenario($modelUser::SCENARIO_REGISTER_NORMAL);
$data = Json::Decode($model->user_details);
$modelUser->load($data);
$modelUser->validate();
// $modelUser->setPassword($data['User']['password']);
$modelUser->status = $modelUser::STATUS_ACTIVE;
$modelUser->otp = $request['OTP'];
//print_r($modelUser); die;
if($modelUser->save(false)){
$response = ['status'=> Com::SUCCESS];
Com::successFlash(yii::t('frontend','Registration Successfull'));
$model = new LoginForm();
$model->setScenario($model::SCENARIO_LOGIN_DEFAULT);
$model->username = $data['User']['mobile_number'];
$model->otp = $request['OTP'];
//print_r($model); die;
if ($model->login()) {
$user = Yii::$app->getUser()->getIdentity();
// print_r($user); die;
$model = User::findOne(['user_key' => $user->user_key]);
$model->generateAuthKey();
$model->save(false);
return $this->asJson($response);
} else {
$response = ['status'=> Com::ERROR, 'Error'=> yii::t('frontend','OTP not match')];
}
} else {
$response = ['status'=> Com::ERROR, 'Error'=> yii::t('frontend','OTP not match')];
}
} else {
$response = ['status'=> Com::ERROR, 'Error'=> yii::t('frontend','OTP not match')];
return $this->asJson($response);
}
}
/**
* @return string
* @throws \yii\base\InvalidParamException
* @throws NotFoundHttpException
* @throws \Exception
* @throws \Throwable
* @throws \yii\db\StaleObjectException
*/
public function actionIndex()
{
$userIdentity = UserIdentity::getInstance()->getUser();
$model = User::findOne($userIdentity->getId());
if ($model === null) {
throw new NotFoundHttpException('User Not Found');
}
$model->setScenario($model::SCENARIO_PROFILE_UPDATE);
$request = Yii::$app->getRequest()->post();
if ($model->load($request) && $model->validate() && $model->update()) {
Com::successFlash('Profile updated successfully');
}
return $this->render('index', ['model' => $model]);
}
/**
*
* @throws \yii\base\InvalidParamException
*/
public function actionSubscribe()
{
$params = ['name', 'email'];
$post = Yii::$app->getRequest()->post();
$data = ['status' => STATUS_FAIL, 'msg' => ''];
foreach ($params as $param) {
if (!array_key_exists($param, $post['NewsletterSubscriber'])) {
$data['msg'] = Yii::t('backend', 'Required param missing');
goto skip;
}
}
$model = new NewsletterSubscriber();
$model->name = $post['NewsletterSubscriber']['name'];
$model->email = $post['NewsletterSubscriber']['email'];
if (!$model->save()) {
$data['msg'] = $model->getFirstErrors();
goto skip;
}
$data['status'] = STATUS_SUCCESS;
skip:
echo Json::encode($data);
}
/**
* @return string
* @throws \yii\base\InvalidParamException
*/
public function actionChangePassword()
{
$model = new ChangePassword();
$post = Yii::$app->getRequest()->post();
if ($model->load($post) && $model->validate()) {
if ($model->changePassword()) {
Com::successFlash(yii::t('frontend','Password changed successfully'));
} else {
Com::failureFlash(yii::t('frontend','Error in updating password please try again'));
}
}
return $this->render('change-password', ['model' => $model]);
}
/**
* @return \yii\web\Response
*/
public function actionLogout()
{
Yii::$app->user->logout();
return $this->logout() ;
}
/**
* @return \yii\web\Response
* @throws \yii\base\InvalidParamException
* @throws \Facebook\Exceptions\FacebookSDKException
*/
public function actionFbCallback()
{
$fbHelper = FBHelper::getInstance();
$fbHelper->setAccessToken();
if (($error = $fbHelper->getError()) !== false) {
Com::failureFlash($error);
return $this->goHome();
}
$fbUserData = $fbHelper->getUserData();
if ($fbUserData->getId() === null || $fbUserData->getEmail() === null) {
Com::failureFlash('Facebook login failed');
return $this->goHome();
}
$request = [
'fb_token' => $fbUserData->getId(),
'first_name' => $fbUserData->getName(),
'email' => $fbUserData->getEmail()
];
$model = new User();
$model->fb_token = $request['fb_token'];
$model->first_name = $request['first_name'];
$model->email = $request['email'];
$model->setScenario($model::SCENARIO_REGISTER_SOCIAL_MEDIA);
$modelUser = User::find()->where(['fb_token' => $request['fb_token']]);
if ( $request['email'] != '' ) {
$modelUser = $modelUser->orWhere(['email' => $request['email']]);
}
$modelUser = $modelUser->one();
if ( $modelUser !== null ) {
$modelUser->fb_token = $request['fb_token'];
$modelUser->save(false);
} else {
if ( !$model->validate() ) {
Com::failureFlash($model->getError());
return $this->goHome();
}
$model->status = User::STATUS_ACTIVE;
$model->save();
}
$modelLogin = new LoginForm();
$modelLogin->auth_id = $request['fb_token'];
$modelLogin->setScenario($modelLogin::SCENARIO_SOCIAL_MEDIA_LOGIN);
if ( $modelLogin->login() ) {
$user = Yii::$app->getUser()->getIdentity();
$modelLogin = User::findOne(['user_key' => $user->user_key]);
$modelLogin->generateAuthKey();
$modelLogin->save(false);
$url = Url::previous();
return $this->goBack($url);
//return $this->goHome();
}
Com::failureFlash('Facebook login failed');
return $this->goHome();
}
/**
*
*/
public function actionForgotPassword()
{
$data = ['status' => STATUS_FAIL, 'msg' => ''];
$post = Yii::$app->getRequest()->post();
$model = User::find()
->where(['email' => $post["LoginForm"]["username"]])
->andWhere(['status' => User::ACTIVE])
->one();
if ($model === null) {
$response = ['Error'=>'User is inactive/User does not exist'];
return $this->asJson($response);
}
$model->generatePasswordResetToken();
$model->save(false);
MailerQueueHelper::getInstance()
->setTo($post["LoginForm"]["username"])
->setSubject('Password Reset Link')
->setView(
'forgotPassword',
[
'name' => $model->first_name,
'resetLink' =>
Url::to(
'user/reset-password?reset_token=' . $model->password_reset_token,
true
)
]
)->push();
$response = ['status'=> Com::SUCCESS,'msg'=> yii::t('frontend', 'Reset link sent to your email')];
return $this->asJson($response);
}
/**
*
* @param type $reset_token
* @return type
*/
public function actionResetPassword($reset_token)
{
$this->layout = 'reset-password';
$model = new ResetPassword();
if (!Yii::$app->getUser()->getIsGuest()) {
return $this->goHome();
}
if (Yii::$app->getRequest()->get('error') !== null) {
return $this->render('reset-password', ['model' => $model]);
}
$modelUser = User::findByPasswordResetToken($reset_token);
if ($modelUser === null) {
Com::failureFlash(yii::t('frontend','Password reset token expired try again !'));
if (User::findOne(['password_reset_token' => $reset_token]) === null) {
Com::failureFlash(yii::t('frontend','Password reset token not valid !'));
}
return $this->goHome();
}
if ($model->load(Yii::$app->getRequest()->post()) && $model->validate()) {
$modelUser->removePasswordResetToken();
$modelUser->setPassword($model->password);
$modelUser->save(false);
Com::successFlash(yii::t('frontend','Password changed successfully'));
return $this->goHome();
}
return $this->render('reset-password', ['model' => $model,'token' => $reset_token]);
}
public function actionSendOtpProfileUpdate() {
$user = Yii::$app->getUser()->getIdentity();
if($user === null) {
$this->asJson(['status' => Com::ERROR, 'message' => yii::t('frontend','User is not active')]);
}
$model = User::findOne(['user_id' => $user->getId(),'status' => User::ACTIVE]);
$request = Yii::$app->getRequest()->post();
$otp = OtpTemp::generateOtp();
$model->otp = $otp;
if($model->save(false)) {
$mail = \common\helpers\Mailer::getInstance()
->setTo($model['email'])
->setSubject('Verify OTP')
->setMessage(Configuration::get(Configuration::APP_NAME). ' - Please use '.$otp.' to update your mobile number')
->send();
SmsGateway::getInstance()->sendSMS($request['country_code'].$request['mobile_number'], Configuration::get(Configuration::APP_NAME).' - Please use '.$otp.' to update your mobile number');
return $this->asJson(['status' => Com::SUCCESS]);
}
return $this->asJson(['status' => Com::ERROR]);
}
public function actionResend_otp()
{
$request = Yii::$app->getRequest()->post();
$user_temp = OtpTemp::findOne(['otp_temp_id' => $request['otp_id']]);
if($user_temp == null) {
$this->commonError('INVALID_REQUEST');
}
$otp = OtpTemp::generateOtp();
$user_temp->otp = $otp;
$data = Json::Decode($user_temp->user_details);
if($user_temp->save()) {
$mail = \common\helpers\Mailer::getInstance()
->setTo($user_temp->email)
->setSubject('Verify OTP')
->setMessage(Configuration::get(Configuration::APP_NAME). ' - Thank you for registering with us, Please use '.$otp.' to complete your registration')
->send();
//$msg = Com::send_sms($user_temp->mobile_no, $otp);
Com::send_sms($user_temp->mobile_no, Configuration::get(Configuration::APP_NAME).' - Thank you for registering with us, Please use '.$otp.' to complete your registration');
//SmsGateway::getInstance()->sendSMS($data['User']['mobile_number'],Configuration::get(Configuration::APP_NAME).' - Thank you for registering with us, Please use '.$otp.' to complete your registration ');
$response = ['status'=> Com::SUCCESS,'otp_id' => $user_temp->otp_temp_id];
}
return $this->asJson($response);
}
/**
*
* @return string
*/
public function actionProfile()
{
$model = User::findOne(Yii::$app->getUser()->getId());
$modelUploadForm = new UserUploadForm;
$modelNewsletter = NewsletterSubscriber::find()
->select('status')
->where([
'email' => $model->email,
])
->one();
return $this->render('profile', ['model' => $model, 'modelUploadForm' => $modelUploadForm, 'isSubscribed' => $modelNewsletter]);
}
public function actionProfileUpdate()
{
$modelUploadForm = new UserUploadForm;
if (yii::$app->request->isAjax) {
$model = $this->findModel(Yii::$app->getUser()->getId());
$model->setScenario(User::PROFILE_UPDATE);
$post = Yii::$app->request->post();
$mobile = $model->mobile_number;
$post['User']['mobile_number'] = $post['User']['mobile_number'];
if ($model->load($post) && $model->validate()) {
// $model = User::find()
// ->where([
// 'email' => $model->email
// ])
// ->andWhere(['<>','user_id', $model->user_id])
// ->andWhere(['<>','status', User::DELETE])
// ->one();
// if($model != null) {
// return $this->asJson([
// 'status' => Com::ERROR,
// 'errors' => 'Email address already exist'
// ]);
// }
if(isset($post['User']['new_password']) && $post['User']['new_password'] != '') {
$model->setPassword($model->new_password);
}
$uploadedFile = UploadedFile::getInstance($modelUploadForm, 'profile_image');
if (!$uploadedFile == null) {
$uploadHelper = UploadHelper::getInstance();
$uploadHelper->setPath($uploadHelper::USER);
$uploadHelper->setUploadedFile($uploadedFile);
$path = $uploadHelper->getPath(true);
$uploadedFile->saveAs($path);
$realpath = $uploadHelper->getRealPath($path);
$model->profile_image = '/'.$realpath;
}
if ($mobile == $model->mobile_number) {
$model->save(false);
return $this->asJson(['status' => Com::SUCCESS]);
} else {
/*if(isset($post['otp'])) {
if($post['otp'] == $model->otp) {
$model->save();
return $this->asJson(['status' => Com::SUCCESS]);
} else {
return $this->asJson([
'status' => Com::ERROR,
'errors' => yii::t('frontend', 'OTP not match')
]);
}
}*/
if($model->save(false)){
return $this->asJson(['status' => Com::SUCCESS]);
} else {
return $this->asJson([
'status' => Com::ERROR,
'errors' => $model->getErrors()
]);
}
}
} else {
Com::log( json_encode($model->getErrors(), true), 'password');
// print_r($model->getErrors()); die;
$errors = $model->getFirstErrors();
return $this->asJson([
'status' => Com::ERROR,
'errors' => reset($errors)
]);
}
return $this->render('profile', ['model' => $model, 'modelUploadForm' => $modelUploadForm]);
}
}
public function findModel($id)
{
if (($model = User::findOne(['user_id' => $id])) !== null) {
return $model;
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
public function actionAddress()
{
$model = UserAddress::getaddress(Yii::$app->getUser()->getId());
$addresstype = AddressType::getaddresstype();
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
$model=null;
if(!$post['address_id'] == ''){
$model = UserAddress::findOne(['user_address_id' => $post['address_id']]);
}
if($model == null){
$model = new UserAddress();
}
$model->setScenario(UserAddress::ADD_ADDRESS);
if ($model->load($post) && $model->validate()) {
$model->user_id = Yii::$app->getUser()->getId();
if ($model->save()){
$UserAddressLang = UserAddressLang::findOne(['user_address_id' => $model->getPrimaryKey()]);
if($UserAddressLang == null){
$UserAddressLang = new UserAddressLang();
$UserAddressLang->user_address_id = $model->user_address_id;
}
$UserAddressLang->setScenario(UserAddressLang::ADD_ADDRESS);
if ($UserAddressLang->load($post) && $UserAddressLang->validate()) {
$UserAddressLang->language_code = UserAddress::DEFAULT_LANG;
if ($UserAddressLang->save()){
$msg = \yii::t('frontend','Address added successfully');
if(!$post['address_id'] == ''){
$msg = \yii::t('frontend','Address updated successfully');
}
Com::successFlash($msg);
return $this->asJson(['status' => Com::SUCCESS,'msg' =>$msg]);
}
}
}
}
}
return $this->render('address',['model' => $model, 'addresstype' => $addresstype]);
}
public function actionDeleteAddress()
{
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
/* print_r($post); die;*/
$model = UserAddress::findOne($post);
$model->address_status = 2;
$model->save();
return $this->asJson(['status' => Com::SUCCESS]);
}
}
public function actionUpdateAddress()
{
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
$model = UserAddress::findaddress($post['address-id']);
$useraddresslang = UserAddressLang::findOne(['user_address_id' => $post['address-id']]);
$data = ['address' => $model,'addresslang' => $useraddresslang];
return $this->asJson($data);
}
}
public function actionOrders($page = 1)
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('order/index', ['page' => $page])->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$DataArray['message'] = $message;
}
$DataArray['data'] = $apiResponse->getData();
// echo "
";
// print_r($DataArray); die;
if (yii::$app->request->isAjax) {
$result['status'] = STATUS_SUCCESS;
$result['nextPage'] = ($DataArray['data']['total_page'] == $page) ? $DataArray['data']['total_page'] : $page + 1;
$result['html'] = $this->renderPartial('_order_div',['data' => $DataArray['data']]);
return $this->asJson($result);
}
return $this->render('order',['data' => $DataArray['data']]);
}
public function actionReviews($page = 1)
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('rating/index', ['page' => $page])->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$DataArray['message'] = $message;
}
$DataArray['data'] = $apiResponse->getData();
if (yii::$app->request->isAjax) {
$result['status'] = STATUS_SUCCESS;
$result['nextPage'] = ($DataArray['data']['total_page'] == $page) ? $DataArray['data']['total_page'] : $page + 1;
$result['html'] = $this->renderPartial('_order_div',['data' => $DataArray['data']]);
return $this->asJson($result);
}
return $this->render('review',['review' => $DataArray['data']]);
}
public function actionEditReview()
{
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
$model = BranchReview::findOne($post['id']);
return $this->asJson($model);
}
}
public function actionReviewUpdate()
{
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
$model = BranchReview::findOne($post['id']);
$model->rating = $post['rating'];
$model->review = $post['Comments'];
$model->save();
return $this->asJson(['status' => Com::SUCCESS]);
}
}
public function actionDeleteReview()
{
if (yii::$app->request->isAjax) {
$post = Yii::$app->request->post();
$model = BranchReview::findOne($post['id']);
$model->delete();
return $this->asJson(['status' => Com::SUCCESS]);
}
}
public function actionFavourites()
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('favourite/index')->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$cartDataArray['message'] = $message;
}
$cartDataArray['data'] = $apiResponse->getData();
return $this->render('favourites',['data' => $cartDataArray['data']]);
}
public function actionNewsletterSubscribe()
{
if (yii::$app->request->isAjax) {
$model = new NewsletterSubscriber();
$post = Yii::$app->request->post();
$user = User::findOne($post['id']);
$result = ['status' => STATUS_SUCCESS, 'msg' => ''];
$NewsletterSubscriber = NewsletterSubscriber::find()->where(['email' => $user->email])->one();
if(!$NewsletterSubscriber == ""){
if($NewsletterSubscriber->status == 1){
$NewsletterSubscriber->status = 3;
$result['msg'] = yii::t('frontend','Newsletter Unsubscribed successfully');
$NewsletterSubscriber->save();
}else{
$NewsletterSubscriber->status = 1;
$result['msg'] = yii::t('frontend','Newsletter Subscribed successfully');
$NewsletterSubscriber->save();
}
}else{
$model->email = $user->email;
$model->name = $user ->first_name;
$model->status = 1;
$model->save();
$result['msg'] = yii::t('frontend','Newsletter Subscribed successfully');
}
return $this->asJson($result);
}
}
public function actionCheck_mobile_exist() {
if (Yii::$app->request->isAjax) {
$request = Yii::$app->getRequest()->post();
if($request['mobile'] != '') {
$count = User::find()->where(['mobile_number' => $request['mobile']])->count();
echo $count;
}
die;
}
}
//Email ID Uniqueness Checking
public function actionCheck_email_exist() {
if (Yii::$app->request->isAjax) {
$request = Yii::$app->getRequest()->post();
if($request['email'] != '') {
$count = User::find()->where(['email' => $request['email']])->count();
echo $count;
}
die;
}
}
public function actionWebPushNotification()
{
$post = Yii::$app->getRequest()->post();
$userIdentity =Yii::$app->getUser()->getIdentity();
$model = User::find()->where(['user_id' => $userIdentity->user_id])->one();
$model->web_token = $post['playerId'];
$model->save(false);
}
/**
* @return \yii\web\Response
* @throws \Throwable
* @throws \yii\base\InvalidConfigException
*/
public function actionWalletTrans()
{
$post = Yii::$app->getRequest()->post();
// print_r($post); die;
$walletModel = new WalletTransaction();
$result = ['status' => STATUS_SUCCESS, 'msg' => ''];
$userIdentity =Yii::$app->getUser()->getIdentity();
if (($walletModel->pay_type == WalletTransaction::PAY_TYPE_TRANSACTION)) {
if ($userIdentity == null) {
$result['msg'] = yii::t('frontend','Please login in and then continue.');
$result['status'] = 0;
}
}
if ($walletModel->load($post)) {
$receiverModel = User::findOne(['mobile_number' => $walletModel->mobile_number]);
if ($receiverModel == null) {
$result['msg'] = yii::t('frontend','User not found for given mobile number!');
$result['status'] = 0;
goto skip;
}
$requestData = [
'mobile_number' => $walletModel->mobile_number,
'first_name' => $receiverModel->first_name,
'last_name' => $receiverModel->last_name,
'email' => $receiverModel->email,
'amount' => $walletModel->amount,
'pay_type' => ($walletModel->pay_type == WalletTransaction::PAY_TYPE_RECHARGE) ? WalletTransaction::PAY_TYPE_RECHARGE : WalletTransaction::PAY_TYPE_TRANSACTION,
'transaction_type' => ($walletModel->pay_type == WalletTransaction::PAY_TYPE_RECHARGE) ? WalletTransaction::TRANS_TYPE_RECHARGE : WalletTransaction::TRANS_TYPE_TRANSACTION,
'payment_option' => $walletModel->payment_option,
'type' => 'web'
];
//print_r($requestData); die;
$walletRequest = ApiHelper::getInstance()
->setRequestMethod(ApiHelper::REQUEST_METHOD_POST)
->setRequestParam($requestData)
->setUrl('wallet/transfer-amount');
$apiResponse = $walletRequest->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$result['status'] = false;
$result['message'] = $message;
}
if($walletModel->pay_type == WalletTransaction::PAY_TYPE_RECHARGE){
$data = $apiResponse->getData();
return $this->redirect($data['payment_url']);
}
}
skip:
return $this->asJson($result);
}
/**
* @return string
* @throws \Throwable
*/
public function actionWallet($page = 1)
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('wallet/index',['page' => $page])->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$cartDataArray['message'] = $message;
}
$cartDataArray['data'] = $apiResponse->getData();
if (yii::$app->request->isAjax) {
$result['status'] = STATUS_SUCCESS;
$result['nextPage'] = ($cartDataArray['data']['total_page'] == $page) ? $cartDataArray['data']['total_page'] : $page + 1;
$result['html'] = $this->renderPartial('_wallet_tr',['data' => $cartDataArray['data']]);
return $this->asJson($result);
}
return $this->render('wallet',['data' => $cartDataArray['data']]);
}
/**
* @return string
* @throws \Throwable
*/
public function actionLoyality()
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('wallet/get-loyality-point')->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$cartDataArray['message'] = $message;
}
$cartDataArray['data'] = $apiResponse->getData();
return $this->render('loyalty', ['data' => $cartDataArray['data']]);
}
/**
* @return string
* @throws \Throwable
*/
public function actionRedeemLoyality()
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('wallet/redeem-loyality-point')->run();
$status = 200;
$dataArray = [];
if(!$apiResponse->isSuccess()) {
$status = 400;
}
$dataArray['data'] = $apiResponse->getData();
$dataArray['data']['status'] = $status;
$dataArray['data']['message'] = $apiResponse->getMessage();;
return $this->asJson($dataArray['data']);
}
/**
* @return string
* @throws \Throwable
*/
public function actionSubscription($page = 1)
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('order-subscription/index',['page' => $page])->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$cartDataArray['message'] = $message;
}
$cartDataArray['data'] = $apiResponse->getData();
if (yii::$app->request->isAjax) {
$result['status'] = STATUS_SUCCESS;
$result['nextPage'] = ($cartDataArray['data']['total_page'] == $page) ? $cartDataArray['data']['total_page'] : $page + 1;
$result['html'] = $this->renderPartial('subscription_tr',['subscribeData' => $cartDataArray['data']]);
return $this->asJson($result);
}
return $this->render('subscription', ['subscribeData' => $cartDataArray['data']]);
}
/**
* @return string
* @throws \Throwable
*/
public function actionRefundBottle()
{
if (yii::$app->request->isAjax) {
$requestObj = Yii::$app->getRequest();
$request = $requestObj->get();
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$_GET = [
'refund_bottle_qty' => $request['bottle'],
];
$apiResponse = ApiHelper::getInstance()
->setUrl('user/refund-bottle-request')->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$result['status'] = STATUS_FAIL;
$result['msg'] = $message;
return $this->asJson($result);
}
$cartDataArray['data'] = $apiResponse->getData();
$result['status'] = STATUS_SUCCESS;
$result['msg'] = $apiResponse->getMessage();
return $this->asJson($result);
}
$model = ItemBottleRefundHistory::find()
->orderBy(['item_bottle_refund_history_id' => SORT_DESC])
->asArray()
->all();
return $this->render('refund-bottle', ['datas' => $model]);
}
public function actionEnableHealthAdvice()
{
$userIdentity = Yii::$app->getUser()->getIdentity();
if($userIdentity->is_health_advice == User::ACTIVE) {
$userIdentity->is_health_advice = User::INACTIVE;
} else {
$userIdentity->is_health_advice = User::ACTIVE;
}
$userIdentity->save();
return $this->asJson($userIdentity->is_health_advice);
}
public function actionCartDataAvailableCheck()
{
$cart = Com::Session(Com::CART);
foreach ($cart as $key => $cartItem) {
$item = Item::getItemDetails($cartItem['item_key']);
if($item == null) {
$result['msg'] = "invalid Item";
}
$cartType = 2;
if($key == 'bulk_order') {
$cartType = 1;
}
}
return $this->asJson($cartType);
}
public function actionReminder()
{
if (!Yii::$app->getUser()->getIsGuest()) {
$userIdentity = Yii::$app->getUser()->getIdentity();
$bearer = $userIdentity->getAuthKey();
}
$headers = [
'Content-Type: application/json; charset=utf-8',
sprintf('Authorization: Bearer %s', $bearer),
'Accept-Language: ' . \Yii::$app->language,
];
$apiResponse = ApiHelper::getInstance()
->setUrl('user/user-drinking')->run();
if(!$apiResponse->isSuccess()) {
$message = $apiResponse->getMessage();
$dataArray['message'] = $message;
}
$dataArray['drinking'] = $apiResponse->getData();
$apiResponse = ApiHelper::getInstance()
->setUrl('user/reminder-schedule')->run();
$dataArray['list'] = $apiResponse->getData();
//
return $this->render('reminder', ['dataArray' => $dataArray]);
}
}