<?php

include_once('./config/config.php');
//$ARR_REQUIRED_PARAMETERS = array('username', 'token', 'announcement_path');
$ARR_REQUIRED_PARAMETERS = array('announcement_path');

$ARR_RESPONSE = array();

$redis = new Redis();
$redis->connect(REDIS_DB_HOST, REDIS_DB_PORT);

if (isset($_REQUEST['owner_id'], $_REQUEST['token']) && $_REQUEST['owner_id'] != '' && $_REQUEST['token'] != '') {
    $owner_id = (int) trim($_REQUEST['owner_id']);
    $token = trim($_REQUEST['token']);

    $token_data = $redis->hget('owner', $owner_id);
    if ($token === $token_data) {
        foreach ($ARR_REQUIRED_PARAMETERS as $param_key) {
            if (!isset($_REQUEST[$param_key])) {
                $ARR_RESPONSE['status'] = "error";
                $ARR_RESPONSE['code'] = "001";
                $ARR_RESPONSE['desc'] = "Parameter Missing ($param_key) ";
                echo json_encode($ARR_RESPONSE, true);
                exit;
            }
        }

        foreach ($ARR_REQUIRED_PARAMETERS as $param_key) {
            $$param_key = trim($_REQUEST[$param_key]);

            if ($$param_key == '') {
                $ARR_RESPONSE['status'] = "error";
                $ARR_RESPONSE['code'] = "002";
                $ARR_RESPONSE['desc'] = "Parameter is blank ($param_key) ";
                echo json_encode($ARR_RESPONSE, true);
                exit;
            }
        }


        $announcement_path = urldecode($announcement_path);

        $path = explode("?", $announcement_path);
        $filename = basename($path[0]);

        $file_explode = explode(".", $filename);
        $file_name_ext = "";

        if (isset($file_explode[1])) {
            $file_name_ext = $file_explode[1];
        }
        if ($file_name_ext != 'wav') {
            $ARR_RESPONSE['status'] = "error";
            $ARR_RESPONSE['code'] = "007";
            $ARR_RESPONSE['desc'] = "Invalid announcement type (wav allowed only)";
            echo json_encode($ARR_RESPONSE, true);
            exit;
        }

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $announcement_path);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($ch);
        curl_close($ch);


        $targetVoiceFile = VOICE_ANNOUNCEMENT_DIR . $filename;

        $destination = $targetVoiceFile;
        $file = fopen($destination, "w+");
        fputs($file, $data);
        fclose($file);

        $arr_response_data = array();
//$arr_response_data['announcement_id'] = $announcement_id;
        $arr_response_data['announcement_name'] = $filename;

        $ARR_RESPONSE['status'] = "success";
        $ARR_RESPONSE['code'] = "000";
        $ARR_RESPONSE['desc'] = "Announcement Uploaded Successfully";
        $ARR_RESPONSE['data'] = $arr_response_data;
        echo json_encode($ARR_RESPONSE, true);
        exit;
    } else {
        $ARR_RESPONSE['status'] = "error";
        $ARR_RESPONSE['code'] = "011";
        $ARR_RESPONSE['desc'] = "Invalid owner_id or token !!";
        echo json_encode($ARR_RESPONSE, true);
        exit;
    }
} else {
    $ARR_RESPONSE['status'] = "error";
    $ARR_RESPONSE['code'] = "010";
    $ARR_RESPONSE['desc'] = "owner_id and token field required !!";
    echo json_encode($ARR_RESPONSE, true);
    exit;
}



