package com.ruoyi;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.domain.vo.UseCaseUrlVO;
import okhttp3.*;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.IOException;
import java.util.List;

@SpringBootTest
public class TestUrl {

    @Test
    public void test() throws IOException {
        OkHttpClient client = new OkHttpClient().newBuilder()

                .build();

        MediaType mediaType = MediaType.parse("application/json");

        // 定义查询变量
        String variables = "{    \"offset\": {        \"offset\": 0,        \"limit\": 10    },    \"orderBy\": {        \"field\": \"displayID\",        \"order\": \"DESC\"    },    \"search\": \"Z\"}";
        // 创建请求体
        RequestBody body = RequestBody.create(mediaType, "{\"query\":\"query useCases($offset:OffsetConnectionInput$orderBy:OrderByInput$filter:Map$search:String){useCases(offset:$offset orderBy:$orderBy filterFields:$filter search:$search){nodes{id displayID class name description remediation requirements riskLevel}totalCount}}\",\"variables\":"+ variables +"}");

        Request request = new Request.Builder()
                .url("http://10.12.48.80:8089/api/query")
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
//                .addHeader("Host", "10.12.48.80:8089")
//                .addHeader("Origin", "http://10.12.48.80:8089")
//                .addHeader("Referer", "http://10.12.48.80:8089/api/graphql/playground")
//                .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36")
                .build();

        Response response = client.newCall(request).execute();
        String string = response.body().string();
        JSONObject jsonObject = JSONObject.parseObject(string);
        List<UseCaseUrlVO> list = jsonObject.getJSONObject("data").getJSONObject("useCases").getList("nodes", UseCaseUrlVO.class);
        list.forEach(item -> {
            System.out.println("item = " + item);
        });

    }
    
}