nidus-sync/platform/csv/pool.go
Eli Ribble f9c8f37cec
Add organization to file upload
So everyone in the org can see it.
2026-02-08 05:00:14 +00:00

51 lines
1.3 KiB
Go

package csv
import (
"context"
"encoding/csv"
"fmt"
"io"
"github.com/Gleipnir-Technology/nidus-sync/db"
"github.com/Gleipnir-Technology/nidus-sync/db/models"
"github.com/Gleipnir-Technology/nidus-sync/userfile"
"github.com/rs/zerolog/log"
)
func ProcessJob(ctx context.Context, file_id int32) error {
file, err := models.FindFileuploadFile(ctx, db.PGInstance.BobDB, file_id)
if err != nil {
return fmt.Errorf("Failed to get file %d from DB: %w", file_id, err)
}
r, err := userfile.NewFileReader(userfile.CollectionCSV, file.FileUUID)
if err != nil {
return fmt.Errorf("Failed to get filereader for %d: %w", file_id, err)
}
reader := csv.NewReader(r)
header, err := reader.Read()
if err != nil {
return fmt.Errorf("Failed to read header of CSV for file %d: %w", file_id, err)
}
err = validateHeader(header)
if err != nil {
addImportError(file, err)
}
for {
row, err := reader.Read()
if err != nil {
if err == io.EOF {
return nil
}
return fmt.Errorf("Failed to read all CSV records for file %d: %w", file_id, err)
}
log.Debug().Strs("row", row).Msg("Line")
}
return nil
}
func addImportError(file *models.FileuploadFile, err error) {
log.Debug().Err(err).Int32("file_id", file.ID).Msg("Fake add import error")
}
func validateHeader(row []string) error {
return nil
}