package service import ( "context" "fmt" "io" "net/http" "os" "testing" modelWorkflow "dashoo.cn/micro/app/model/workflow" "dashoo.cn/opms_libary/plugin/dingtalk" "dashoo.cn/opms_libary/plugin/dingtalk/message" "github.com/gogf/gf/frame/g" "github.com/smallnest/rpcx/share" ) var testTenant = "default" func fakeCtx(parent context.Context, tenant string) context.Context { ctx := context.WithValue(parent, share.ReqMetaDataKey, map[string]string{ "tenant": tenant, }) return ctx } func TestAssignInvoiceApplyApproval(t *testing.T) { ctx := fakeCtx(context.Background(), testTenant) instance := modelWorkflow.PlatWorkflow{} err := g.DB(testTenant).Table("plat_workflow").Where("id = ?", 47).Struct(&instance) if err != nil { panic(err) } err = InvoiceApplyApproval(ctx, &instance, &message.MixMessage{ ProcessType: "finish", // ProcessType: "terminate", // Result: "agree", Result: "refuse", }) if err != nil { panic(err) } } func TestContractApplyApproval(t *testing.T) { ctx := fakeCtx(context.Background(), testTenant) instance := modelWorkflow.PlatWorkflow{} err := g.DB(testTenant).Table("plat_workflow").Where("id = ?", 85).Struct(&instance) if err != nil { panic(err) } err = ContractApplyApproval(ctx, &instance, &message.MixMessage{ ProcessType: "finish", // ProcessType: "terminate", Result: "agree", // Result: "refuse", }) if err != nil { panic(err) } } func TestDownloadDingtalk(t *testing.T) { // dingtalk:21042518430:97103341461 // dingtalk:21042518430:97112761361 res, err := dingtalk.Client.GetStorage().AddPermission(dingtalk.Client.Context.CorpId, "21042518430", "8xljy04PZiS9iPxp5PhDnUzQiEiE", "EDITOR", "USER") fmt.Println(res, err) resp, err := dingtalk.Client.GetStorage().QueryFileDownloadInfo("21042518430", "97112761361", "8xljy04PZiS9iPxp5PhDnUzQiEiE") // resp, err := dingtalk.Client.GetStorage().QueryFileDownloadInfo("21042518430", "97103341461", "fHJtftdpHZXwvsdOfg8skgiEiE") fmt.Println(resp, err) req, err := http.NewRequest("GET", resp.HeaderSignatureInfo.ResourceUrls[0], nil) if err != nil { panic(err) } for k, v := range resp.HeaderSignatureInfo.Headers { req.Header.Add(k, v) } fileresp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } f, err := os.Create("test.jpeg") if err != nil { panic(err) } defer f.Close() _, err = io.Copy(f, fileresp.Body) if err != nil { panic(err) } }