123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package algor
- import (
- "fmt"
- "surveyService/response"
- "surveyService/util"
- "github.com/guonaihong/gout"
- )
- var s *setting
- type setting struct {
- Domain string
- AppKey string
- AppSecret string
- Debug bool
- }
- func InitClient(domain, appKey, appSecret string, debug bool) {
- s = &setting{
- Domain: domain,
- AppKey: appKey,
- AppSecret: appSecret,
- Debug: debug,
- }
- }
- // 获取授权列表
- func ListAuthorizes() (*BaseResponse[ListResponse[AppAuth]], *response.ErrCode) {
- var resp *BaseResponse[ListResponse[AppAuth]]
- resp, err := postReq[*BaseResponse[ListResponse[AppAuth]]]("/openapi/authorize/list", gout.H{})
- if err != nil {
- return nil, response.ErrPlatform
- }
- if resp.Code != 200 {
- return nil, &response.ErrCode{
- Code: resp.Code,
- Msg: resp.Message,
- }
- }
- return resp, nil
- }
- // 获取问题模板列表
- func ListQuestionnaireTemplate() (*BaseResponse[ListResponse[QuestionnaireTemplate]], *response.ErrCode) {
- var resp *BaseResponse[ListResponse[QuestionnaireTemplate]]
- resp, err := postReq[*BaseResponse[ListResponse[QuestionnaireTemplate]]]("/openapi/questionnaireTemplate/list", gout.H{})
- if err != nil {
- return nil, response.ErrPlatform
- }
- if resp.Code != 200 {
- return nil, &response.ErrCode{
- Code: resp.Code,
- Msg: resp.Message,
- }
- }
- return resp, nil
- }
- // 获取问题库列表
- func ListQuestionnaireSubject() (*BaseResponse[ListResponse[QuestionnaireSubject]], *response.ErrCode) {
- var resp *BaseResponse[ListResponse[QuestionnaireSubject]]
- resp, err := postReq[*BaseResponse[ListResponse[QuestionnaireSubject]]]("/openapi/questionnaireSubject/list", gout.H{})
- if err != nil {
- return nil, response.ErrPlatform
- }
- if resp.Code != 200 {
- return nil, &response.ErrCode{
- Code: resp.Code,
- Msg: resp.Message,
- }
- }
- return resp, nil
- }
- // 获取问卷信息
- func DetailSurvey(decisionModelSn string) (*BaseResponse[DetailResponse], *response.ErrCode) {
- var resp *BaseResponse[DetailResponse]
- resp, err := postReq[*BaseResponse[DetailResponse]]("/openapi/survey/detail", gout.H{
- "decisionModelSn": decisionModelSn,
- })
- if err != nil {
- return nil, response.ErrPlatform
- }
- if resp.Code != 200 {
- return nil, &response.ErrCode{
- Code: resp.Code,
- Msg: resp.Message,
- }
- }
- return resp, nil
- }
- // 执行决策模型
- func Run(request ExecuteRequest) (*BaseResponse[map[string]any], *response.ErrCode) {
- var resp *BaseResponse[map[string]any]
- resp, err := postReq[*BaseResponse[map[string]any]]("/openapi/run", gout.H{
- "decisionModelSn": request.DecisionModelSN,
- "type": request.Type,
- "surveyData": request.SurveyData,
- "ocrData": request.OcrData,
- "extra": request.Extra,
- })
- if err != nil {
- return nil, response.ErrPlatform
- }
- if resp.Code != 200 {
- return nil, &response.ErrCode{
- Code: resp.Code,
- Msg: resp.Message,
- }
- }
- return resp, nil
- }
- func postReq[T any](path string, data gout.H) (T, error) {
- url := fmt.Sprintf("%s%s", s.Domain, path)
- fmt.Println("请求地址 ===>", url)
- var res T
- err := gout.POST(url).Debug(s.Debug).
- SetHeader(gout.H{
- "token": fmt.Sprintf("%s:%s", s.AppKey, util.Md5(s.AppSecret)),
- "appkey": s.AppKey,
- }).
- SetJSON(data).
- BindJSON(&res).
- Do()
- if err != nil {
- return res, err
- }
- return res, nil
- }
|