| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package dpsapi
- import (
- "errors"
- "fmt"
- "git.sxidc.com/go-tools/api_binding/http_binding"
- "git.sxidc.com/go-tools/api_binding/http_binding/binding_context"
- "git.sxidc.com/go-tools/api_binding/http_binding/response"
- "git.sxidc.com/service-supports/dps-sdk"
- "git.sxidc.com/service-supports/dps-sdk/client"
- )
- func ApiV1(binding *http_binding.Binding, dpsAddress string) {
- http_binding.PostBind(binding, &http_binding.SimpleBindItem[OperateFromRequest, any]{
- Path: "/dpsv1/database/operate",
- ResponseFunc: response.SendMsgResponse,
- BusinessFunc: func(c *binding_context.Context, inputModel OperateFromRequest) (any, error) {
- parsedClauses, err := parseSql(inputModel.SQL)
- if err != nil {
- return nil, err
- }
- dpsClient, err := dps.NewClient(dpsAddress, "v1", inputModel.DatabaseID)
- if err != nil {
- return nil, err
- }
- err = dpsClient.Transaction(func(tx client.Transaction) error {
- for _, parsedClause := range parsedClauses {
- switch clause := parsedClause.(type) {
- case *insertClause:
- fmt.Printf("%+#v\n", clause)
- case *deleteClause:
- fmt.Printf("%+#v\n", clause)
- case *updateClause:
- fmt.Printf("%+#v\n", clause)
- case *selectClause:
- fmt.Printf("%+#v\n", clause)
- default:
- return errors.New("不支持的SQL语句")
- }
- }
- return nil
- })
- if err != nil {
- return nil, err
- }
- return nil, nil
- },
- })
- }
|