<?php

namespace app\api\controller;

use app\common\controller\Api;
use app\common\library\Easemob;

require_once EXTEND_PATH . 'shengwang/src/RtcTokenBuilder2.php';
require_once EXTEND_PATH . 'shengwang/src/RtmTokenBuilder2.php';
/**
 * 手机短信接口
 */
class Test extends Api
{

    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';

//////////////////////////////

    //注册用户,放到注册用户里
    public function registeruser(){
        $easemob = new Easemob();
        $rs = $easemob->user_create($this->auth->id);
        dump($rs);
    }

    //创建聊天室
    public function createroom(){
        $easemob = new Easemob();
        $room_id = $easemob->room_create('聊天室名称','聊天室简介',2);
        dump($room_id);

    }

    //获取聊天室详情
    public function getroominfo(){
        $easemob = new Easemob();

        $room_id = 230909536174085;
        $rs = $easemob->room_getRoom($room_id);
        dump($rs);
    }

    //修改聊天室
    public function updateroominfo(){
        $easemob = new Easemob();

        $room_id = 230909536174085;
        $rs = $easemob->room_updateRoom($room_id,'聊天室名称','聊天室简介');
        dump($rs);
    }

    //强制设置聊天室属性,共100个
    //seat1 到 seat 8 为 八个麦位的用户信息
    //wait_sing 待唱歌曲列表 无序
    //wait_sing_order
    public function setmetadata(){
        $easemob = new Easemob();

        $room_id = 230909536174085;
        $owner_id = 4;
        $matedata = [
                //限量10个
                'seat11'  => 666,
                'seat22'  => 666,
                'seat33'  => 666,
                'seat44'  => 666,
                'seat55'  => 666,
                'seat66'  => 666,
                'seat77'  => 666,
                'seat88'  => 666,
                'seat99'  => 666,
                'seat100' => 666,
        ];
        $rs = $easemob->room_setRoomCustomAttributeForced($room_id,$owner_id,$matedata);
        dump($rs);
    }

    //获取聊天室属性
    public function getmetadata(){
        $easemob = new Easemob();
        $room_id = 230909515202562;

        $key = 'seat1';
        $key2 = 'seat2';

        //可以一个,可以多个,不能有重复
        $keys = [$key,$key2];
        //空数组,则全返回
        //$keys = [];

        $rs = $easemob->room_getRoomCustomAttribute($room_id,$keys);
        dump($rs);
        //dump($rs[$key]);
        //dump($rs[$key2]);
    }

    //强制删除聊天室属性
    public function deletemetadata(){
        $easemob = new Easemob();
        $room_id = 230909515202562;
        $owner_id = 2;
        $keys = ['waitsing_list'];


        $rs = $easemob->room_deleteRoomCustomAttributeForced($room_id,$owner_id,$keys);
        dump($rs);
    }

    //////////////////////////////


    //声网3个token
    public function shengwang_token($easemob_room_id = '230909515202562'){

        $config = config('shengwang');
        $appId          = $config['app_id'];
        $appCertificate = $config['app_zhengshu'];;
        $channelName = $easemob_room_id;
        $uid = 0; //任何人都可进入
        $uidStr = '0';//任何人都可进入
        $tokenExpirationInSeconds = 86400;
        $privilegeExpirationInSeconds = 86400;

        //rtc token
        $rtc_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName, $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);

        //chorus token
        $chorus_token = \RtcTokenBuilder2::buildTokenWithUid($appId, $appCertificate, $channelName.'_ex', $uid, \RtcTokenBuilder2::ROLE_PUBLISHER, $tokenExpirationInSeconds, $privilegeExpirationInSeconds);

        //rtm token
        $user = '0';
        $expireTimeInSeconds = 86400;
        $rtm_token = \RtmTokenBuilder2::buildToken($appId, $appCertificate, $user, $expireTimeInSeconds);

        $result = [
            'rtc_token'    => $rtc_token,
            'chorus_token' => $chorus_token,
            'rtm_token'    => $rtm_token,
        ];
        //dump($result);
        return $result;
    }


}