<?php

namespace api\modules\v1\controllers\user;

use yii\rest\Controller;
use yii\filters\VerbFilter;
use api\modules\v1\models\WechatUser;
use yii\web\BadRequestHttpException;
use yii\web\ForbiddenHttpException;
use yii\web\ServerErrorHttpException;

/**
 * Country Controller API
 *
 * @author Budi Irawan <deerawan@gmail.com>
 */
class AuthController extends Controller
{

    public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['verbs'] = [
            'class' => VerbFilter::className(),
            'actions' => [
                'register' => ['post', 'put'],
		'check' => ['post', 'put'],
            ],
        ];
        return $behaviors;
    }
    
    public function actionCheck()
    {
        $postData = \Yii::$app->request->post();
	if (!isset($postData['user_token'])) throw new BadRequestHttpException("Missing parameter 'user_token'");
	$userToken = $postData['user_token'];
        $user = WechatUser::findOne(['user_token' => $userToken]);
    	if (isset($user)) {
            return "registered";
        }
	return "unregistered";	
    }

    public function actionRegister()
    {
        // TODO: authenticate model by serial number
        $postData = \Yii::$app->request->post();
        if (!isset($postData['user_token'])) throw new BadRequestHttpException("Missing parameter 'user_token'");
        $userToken = $postData['user_token'];
        $user = WechatUser::findOne(['user_token' => $userToken]);
        if (isset($user)) {
            throw new ForbiddenHttpException('This device has already been registered');
        }
        $user = new WechatUser([
            'user_token' => $userToken
        ]);
        
        if ($user->save()) {
            return "Create user succeed!";
        }
        throw new ServerErrorHttpException('Cannot register user, please try again later.');
    }

}