<?php

namespace App\Http\Controllers\Api\v1;

use Illuminate\Http\Request;


/**
 * User
 */
class AuthController extends Controller {

    /**
     *
     * @author     Ketan Patel <ketan.patel@brainvire.com>
     */
    public function __construct() {
        
    }

    /**
     *
     * @author 
     * @return userobject
     */
    /**
     * @Purpose check latest api version
     * @param type $request
     * @return type
     */
    public function isForceUpdate(Request $request)
    {
        
        $this->validate($request, [
            'device_type' => 'required',
            'curr_version' => 'required'
        ]);

        

        $device_type = $request->get('device_type');
        $curr_version = $request->get('curr_version');

        if ($device_type == 'android') {
            if ($curr_version < env('CURRENT_API_VERSION_FOR_Android')) {

                return response()->json(['code' => 200,'status' => 'success','force_update' => 'Yes','message' => FORCE_UPDATE_VERSION]);
                //return $this->success(['force_update' => 'Yes'], 'FORCE_UPDATE_VERSION', 200, $this->getHeader());
            } else {

                return response()->json(['code' => 200,'status' => 'success','force_update' => 'No']);
                
            }
        } else if ($device_type == 'iOS') {
            if ($curr_version < env('CURRENT_API_VERSION_FOR_Iphone')) {

                return response()->json(['code' => 200,'status' => 'success','force_update' => 'Yes','message' => FORCE_UPDATE_VERSION]);
                // return $this->success(['force_update' => 'Yes'], 'FORCE_UPDATE_VERSION', 200, $this->getHeader());
            } else {
                return response()->json(['code' => 200,'status' => 'success','force_update' => 'No']);
                
            }
        } else {
            return response()->json(['code' => 400,'status' => 'fail', 'message' => SOMETHING_WENT_WRONG]);
        }
    }

     public function getForceUpdate($request)
    {
        $validation = Validator::make($request->all(), [
                'device_type' => 'required',
                'curr_version' => 'required'
            ]);

        if ($validation->fails()) {
            return $this->validationError($validation);
        }

        $device_type = $request->get('device_type');
        $curr_version = $request->get('curr_version');

        if ($device_type == 'Android') {
            if ($curr_version < env('CURRENT_API_VERSION_FOR_Android')) {
                return $this->success(['force_update' => 'Yes'], 'FORCE_UPDATE_VERSION', 200, $this->getHeader());
            } else {
                return $this->success(['force_update' => 'No'], 'SUCCESS', 200, $this->getHeader());
            }
        } else if ($device_type == 'iOS') {
            if ($curr_version < env('CURRENT_API_VERSION_FOR_Iphone')) {
                return $this->success(['force_update' => 'Yes'], 'FORCE_UPDATE_VERSION', 200, $this->getHeader());
            } else {
                return $this->success(['force_update' => 'No'], 'SUCCESS', 200);
            }
        } else {
            return $this->error('ERROR', 404, $this->getHeader());
        }
    }

    /**
     * @purpose get header data
     * @return type
     */
    public function getHeader()
    {
        $header = getallheaders();

        return isset($header['Accept-Language']) && !empty($header['Accept-Language']) ? $header['Accept-Language'] : 'en';
    }

 
   
}
