65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"code.tnxs.net/taxnexus/lib/api/devops/devops_client/ingest"
|
|
"code.tnxs.net/taxnexus/lib/api/devops/devops_models"
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
// NewIngestParams is a prams type
|
|
type NewIngestParams struct {
|
|
accountID string
|
|
backendID string
|
|
objectType string
|
|
objList []*devops_models.Ingest
|
|
principal *User
|
|
ref string
|
|
}
|
|
|
|
// NewIngest is an ingest helper function
|
|
func NewIngest(params *NewIngestParams) (string, error) {
|
|
sugar.Debug("ops.newIngest: 📥")
|
|
if params.accountID == "" || params.principal.TenantID == "" {
|
|
return "", fmt.Errorf("ops.newIngest: 💣 ⛔ params.AccountID or params.TaxnexusAccount are blank")
|
|
}
|
|
dt := time.Now().Format(dateTimeFormat)
|
|
theIngest := &devops_models.Ingest{
|
|
AccountID: ¶ms.accountID,
|
|
BackendID: params.backendID,
|
|
EndDate: dt,
|
|
ID: uuid.New().String(),
|
|
IngestDate: dt,
|
|
IngestType: "fabric",
|
|
ObjectType: ¶ms.objectType,
|
|
Ref: params.ref,
|
|
StartDate: dt,
|
|
Status: "new",
|
|
}
|
|
params.objList = []*devops_models.Ingest{theIngest}
|
|
_, err := PostIngests(params)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
sugar.Debugf("ops.newIngest: 👍 📤, Ingest ID=%s", theIngest.ID)
|
|
return theIngest.ID, nil
|
|
}
|
|
|
|
// PostIngests is an ingest helper function
|
|
func PostIngests(params *NewIngestParams) ([]*devops_models.Ingest, error) {
|
|
sugar.Debugf("ops.postIngests: 📥 len=%d", len(params.objList))
|
|
devopsParams := ingest.NewPostIngestsParams()
|
|
devopsParams.IngestRequest = &devops_models.IngestRequest{
|
|
Data: params.objList,
|
|
}
|
|
response, err := devopsClient.Ingest.PostIngests(devopsParams, params.principal.Auth)
|
|
if err != nil {
|
|
sugar.Errorf("ops.postIngests: 💣 ⛔ post to devops error %w", err)
|
|
return nil, err
|
|
}
|
|
sugar.Debugf("ops.postIngests: 👍 📤 len(ingests)=%d", len(response.Payload.Data))
|
|
return response.Payload.Data, nil
|
|
}
|