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 }