simla-bot-quickreplies-test/settings.go
2021-10-14 18:25:30 +03:00

63 lines
1.3 KiB
Go

package main
import (
"errors"
"fmt"
"strings"
"github.com/retailcrm/api-client-go/errs"
"github.com/retailcrm/api-client-go/v5"
)
func buildIntegrationModule(code, name string) v5.IntegrationModule {
return v5.IntegrationModule{
Code: code,
IntegrationCode: code,
Active: true,
Name: name,
ClientID: code,
BaseURL: "https://example.com",
Integrations: &v5.Integrations{
MgBot: &v5.MgBot{},
},
}
}
func updateIntegrationModule(apiURL, apiKey, code, name string) (string, string, error) {
client := v5.New(apiURL, apiKey)
resp, _, err := client.IntegrationModuleEdit(buildIntegrationModule(code, name))
if err != nil {
if nErr := normalizeAPIError(err); nErr != nil {
return "", "", nErr
}
}
return resp.Info.MgBotInfo.EndpointUrl, resp.Info.MgBotInfo.Token, nil
}
func normalizeAPIError(err *errs.Failure) error {
if err == nil {
return nil
}
if err.Error() != "" {
return errors.New(err.Error())
}
if err.ApiError() != "" {
return errors.New(err.ApiError())
}
if len(err.ApiErrors()) > 0 {
var sb strings.Builder
sb.Grow(128)
for field, value := range err.ApiErrors() {
sb.WriteString(fmt.Sprintf("[%s: %s]", field, value))
}
return errors.New(sb.String())
}
return nil
}