package com.ifpdos.udi.sdk.service.doc.base.democode;

import com.ifpdos.udi.sdk.service.doc.base.ApiInfo;
import com.ifpdos.udi.sdk.service.doc.base.ClassParser;
import com.ifpdos.udi.sdk.service.doc.base.Request;
import com.ifpdos.udi.sdk.service.doc.base.Utils;
import d.e.a.f;
import g.h0.c.g;
import g.h0.c.l;
import g.i;
import g.k;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.util.LinkedHashMap;
import java.util.Map;

/* JADX INFO: compiled from: CppClassApiCodeGenerator.kt */
/* JADX INFO: loaded from: classes.dex */
@i
public final class CppClassApiCodeGenerator extends DemoCodeGenerator {
    public static final Companion Companion = new Companion(null);
    private static final String GET_DEMO_CODE_TEMPLATE = "\n``` c++\n// 目前该调用方式只在Windows/Linux上支持\n#include \"libudisdk/client.h\"\n\nint main() {\n    // token需要向平台组申请\n    udisdk::PipeStream stream(token);\n    const auto& request = RequestBuilder()  \n                                  .Url(\"{{&url}}\")\n                                  .Build();\n    const auto& response = stream.Get(request);\n    \n{{^responseJson}}\n    bool success = response.code == 200;\n{{/responseJson}}\n{{#responseJson}}\n    if(response.code == 200) {\n        /* 返回的例子:\n{{&responseJson}}\n        */\n        auto body = response.body;\n    }\n{{/responseJson}}\n}\n```\n";
    private static final String POST_DEMO_CODE_TEMPLATE = "\n``` c++\n// 目前该调用方式只在Windows/Linux上支持\n#include \"libudisdk/client.h\"\n\nint main() {\n    // token需要向平台组申请\n    udisdk::PipeStream stream(token);\n    const auto& request = RequestBuilder()  \n                                  .Url(\"{{&url}}\")\n{{#requestJson}}\n                                  .Body(\"{{&requestJson}}\")\n{{/requestJson}}\n{{^requestJson}}\n                                  .Body(\"{}\")\n{{/requestJson}}\n                                  .Build();\n    const auto& response = stream.Set(request);\n    \n{{^responseJson}}\n    bool success = response.code == 200;\n{{/responseJson}}\n{{#responseJson}}\n    if(response.code == 200) {\n        /* 返回的例子:\n{{&responseJson}}\n        */\n        auto body = response.body;\n    }\n{{/responseJson}}\n}\n```\n";

    /* JADX INFO: compiled from: CppClassApiCodeGenerator.kt */
    @i
    public static final class Companion {
        private Companion() {
        }

        public /* synthetic */ Companion(g gVar) {
            this();
        }
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genGetRequestDemo(ApiInfo apiInfo, ClassParser classParser) throws IOException {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        Request getterRequest = apiInfo.getGetterRequest();
        if (getterRequest == null) {
            throw new RuntimeException(apiInfo.getUri() + " has not getter");
        }
        LinkedHashMap linkedHashMap = new LinkedHashMap();
        String strGenDemoJson = genDemoJson(apiInfo.getUri(), getterRequest.getRequestClass(), linkedHashMap, classParser, false);
        String strGenDemoJson2 = genDemoJson(apiInfo.getUri(), getterRequest.getResponseClass(), linkedHashMap, classParser, true);
        String strGenDemoUrl = genDemoUrl(apiInfo.getUri(), linkedHashMap, getterRequest.getRequestClass(), classParser);
        k[] kVarArr = new k[3];
        kVarArr[0] = new k("url", strGenDemoUrl);
        kVarArr[1] = new k("requestJson", strGenDemoJson);
        kVarArr[2] = new k("responseJson", strGenDemoJson2 != null ? Utils.INSTANCE.addTab(strGenDemoJson2, 2) : null);
        Map mapV = g.c0.g.v(kVarArr);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream);
        new f().a(new StringReader(GET_DEMO_CODE_TEMPLATE), "code").g(outputStreamWriter, mapV);
        outputStreamWriter.flush();
        String string = byteArrayOutputStream.toString();
        l.e(string, "out.toString()");
        return string;
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genNotifyRegisterDemo(ApiInfo apiInfo, ClassParser classParser) {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        return null;
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.democode.DemoCodeGenerator
    public String genPostRequestDemo(ApiInfo apiInfo, ClassParser classParser) throws IOException {
        l.f(apiInfo, "info");
        l.f(classParser, "classParser");
        Request setterRequest = apiInfo.getSetterRequest();
        if (setterRequest == null) {
            throw new RuntimeException(apiInfo.getUri() + " has not setter");
        }
        LinkedHashMap linkedHashMap = new LinkedHashMap();
        String strGenDemoJson = genDemoJson(apiInfo.getUri(), setterRequest.getRequestClass(), linkedHashMap, classParser, false);
        String strGenDemoJson2 = genDemoJson(apiInfo.getUri(), setterRequest.getResponseClass(), linkedHashMap, classParser, true);
        String strGenDemoUrl = genDemoUrl(apiInfo.getUri(), linkedHashMap, setterRequest.getRequestClass(), classParser);
        String strRemoveJsonFormat = strGenDemoJson != null ? Utils.INSTANCE.removeJsonFormat(strGenDemoJson) : null;
        k[] kVarArr = new k[3];
        kVarArr[0] = new k("url", strGenDemoUrl);
        kVarArr[1] = new k("requestJson", strRemoveJsonFormat);
        kVarArr[2] = new k("responseJson", strGenDemoJson2 != null ? Utils.INSTANCE.addTab(strGenDemoJson2, 2) : null);
        Map mapV = g.c0.g.v(kVarArr);
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream);
        new f().a(new StringReader(POST_DEMO_CODE_TEMPLATE), "code").g(outputStreamWriter, mapV);
        outputStreamWriter.flush();
        String string = byteArrayOutputStream.toString();
        l.e(string, "out.toString()");
        return string;
    }
}
