| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package dpsapi
- import (
- "errors"
- "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/go-tools/api_binding/utils"
- "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:
- return doInsert(inputModel, clause)
- case *deleteClause:
- return doDelete(inputModel, clause)
- case *updateClause:
- return doUpdate(inputModel, clause)
- case *selectClause:
- return doSelect(inputModel, clause)
- default:
- return errors.New("不支持的SQL语句")
- }
- }
- return nil
- })
- if err != nil {
- return nil, err
- }
- return nil, nil
- },
- })
- }
- func doInsert(inputModel OperateFromRequest, clause *insertClause) error {
- version := inputModel.Version
- if utils.IsStringEmpty(version) {
- version = "v1"
- }
- return nil
- }
- func doDelete(inputModel OperateFromRequest, clause *deleteClause) error {
- version := inputModel.Version
- if utils.IsStringEmpty(version) {
- version = "v1"
- }
- return nil
- }
- func doUpdate(inputModel OperateFromRequest, clause *updateClause) error {
- version := inputModel.Version
- if utils.IsStringEmpty(version) {
- version = "v1"
- }
- return nil
- }
- func doSelect(inputModel OperateFromRequest, clause *selectClause) error {
- version := inputModel.Version
- if utils.IsStringEmpty(version) {
- version = "v1"
- }
- return nil
- }
|