var axios = require('axios');
const { default: BigNumber } = require('bignumber.js');
var JSON_BIG = require('json-bigint')
const CMD = {}
const url = 'https://api.oceanengine.com/open_api/v3.0/tools/micro_app/update/'

CMD.send = async function(advertiser_id,instance_id,app_page){
    const api = require('./api');
    api.getToken(async (token)=>{
        if(token!=null){
            const headers =  {
                "Access-Token": token, 
                "Content-Type":"application/json"
            }
            let new_app_page = []
            new_app_page[0] =   {
                "id": 0,
                "link": "",
                "remark": app_page[0].new_remark,
                "operate_type": "NEW",
                "start_page":  app_page[0].start_page,
                "start_param": app_page[0].start_param
            }
            const params = {
                "access_token": token,
                "advertiser_id": advertiser_id,
                "instance_id": instance_id,
                "app_page":new_app_page,
                // "app_page": [
                //     {
                //         "id": 0,
                //         "link": "",
                //         "remark": "",
                //         "operate_type": "NEW",
                //         "start_page": "",
                //         "start_param": ""
                //     }
                // ]
            }

            // console.log("app_page::",params)
            const instance = axios.create({
                baseURL: process.env.VUE_APP_API_HOST,
                timeout: 12000,
                withCredentials: false,
                transformResponse: data => {
                    try{
                        return JSON_BIG.parse(data);
                    }catch (err) {
                        console.log(err);
                        return JSON.parse(data)
                    }    
                 },

                 transformRequest: data=>{
                    try{
                        return JSON_BIG.stringify(data);
                    }catch (err) {
                        console.log(err);
                        return JSON.stringify(data)
                    }    
                 }
             });

            instance.post(url, params , {headers:headers})
            .then(response => {
                // call_back(response.data.received_data)
                console.log("jl_add_tg_link:",response.data)
            })
            .catch(error => {
              console.error('jl_add_tg_link was an error!', error);
            });

            // console.log("jl_add_tg_link:",response)
        }
    })
}
module.exports = CMD;

//是否必填：是, 字段 : advertiser_id 类型 number  描述 :广告主账户id
//是否必填：是, 字段 : instance_id 类型 :number  描述 :资产id
//是否必填：是, 字段 : remark 类型 :string  描述 :资产id
//是否必填：是, 字段 : operate_type 类型 :  描述 :	操作类型，可选值: NEW：新建 MODIFY：修改 DELETE：删除
//是否必填：是, 字段 : start_page 类型 :string  描述 :启动页面，形如：page/home/xxx。不得以反斜线开头，不得以反斜线结尾，请避免参数中出现特殊字符
//是否必填：是, 字段 : start_param 类型 :string  描述 :启动参数，形如：name=zhangsan&age=25。不得以问号、连接符等特殊字符开头，请确保各参数间仅使用一个连接符
//是否必填：是, 字段 : link 类型 :string  描述 :小程序链接，以 sslocal://microapp 开头 。生效优先级大于 启动页面 和 启动参数  ，详细内容见接口说明
//是否必填：是, 字段 : app_page 类型 :object[]  描述 :小程序链接，创建链接或更新链接时，小程序调起链接存在两种录入方式：
// 通过参数 app_page.link 录入完整的链接信息。
// 通过参数 app_page.start_page 与 app_page.start_param 利用平台能力生成调起链接，进而录入链接信息。（此时app_page.link 请传空）

//应答示例
// HTTPS/1.1 200 OK
// {
//     "message": "OK",
//     "code": 0,
//     "data": {}
// }