33 lines
897 B
Go
33 lines
897 B
Go
package sybinnercode
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"go-admin/app/goauto/sybclient"
|
|
"go-admin/app/goauto/sybimport"
|
|
"go-admin/config"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var DefaultMatcher = Matcher{Factory: func(ctx context.Context, db *gorm.DB) (MatchReader, error) {
|
|
settings := config.ExtConfig.SYB.Resolved()
|
|
return sybimport.Connect(ctx, sybclient.NewSessionStore(db), sybimport.ConnectConfig{
|
|
BaseURL: settings.BaseURL, Username: settings.Username, Password: settings.Password,
|
|
OcrURL: settings.OcrURL, OcrMaxAttempts: settings.OcrMaxAttempts,
|
|
})
|
|
}}
|
|
|
|
var DefaultApplyRunner = ApplyRunner{Factory: func(ctx context.Context, db *gorm.DB) (InnerCodeWriter, error) {
|
|
reader, err := DefaultMatcher.Factory(ctx, db)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
writer, ok := reader.(InnerCodeWriter)
|
|
if !ok {
|
|
return nil, fmt.Errorf("SYB client does not implement write contract")
|
|
}
|
|
return writer, nil
|
|
}}
|