Files
map-asset-gateway/services/api-go/internal/basemap/vector_rows.go
T

103 lines
2.0 KiB
Go

package basemap
import (
"database/sql"
)
func scanVectorAsset(scanner interface {
Scan(dest ...any) error
}) (VectorAsset, error) {
var item VectorAsset
var metadataJSON string
var createdAt string
var updatedAt string
if err := scanner.Scan(
&item.ID,
&item.Code,
&item.Name,
&item.Format,
&item.Status,
&item.Description,
&item.FilePath,
&item.FileName,
&item.FileSize,
&item.Checksum,
&item.DownloadURL,
&metadataJSON,
&createdAt,
&updatedAt,
); err != nil {
return VectorAsset{}, err
}
item.CreatedAt = parseTime(createdAt)
item.UpdatedAt = parseTime(updatedAt)
if metadataJSON != "" {
_ = readMaybeJSON(metadataJSON, &item.Metadata)
}
if item.Metadata == nil {
item.Metadata = map[string]any{}
}
return item, nil
}
func scanVectorTokenGrant(scanner interface {
Scan(dest ...any) error
}) (VectorTokenGrant, error) {
var item VectorTokenGrant
var createdAt string
if err := scanner.Scan(
&item.ID,
&item.TokenID,
&item.VectorID,
&item.VectorCode,
&item.Permission,
&createdAt,
); err != nil {
return VectorTokenGrant{}, err
}
item.CreatedAt = parseTime(createdAt)
return item, nil
}
func scanVectorPushRecord(scanner interface {
Scan(dest ...any) error
}) (VectorPushRecord, error) {
var item VectorPushRecord
var requestJSON string
var responseStatus sql.NullInt64
var finishedAt sql.NullString
var pushedAt string
if err := scanner.Scan(
&item.ID,
&item.TargetSystemID,
&item.TargetSystemCode,
&item.VectorAssetID,
&item.VectorCode,
&item.Status,
&requestJSON,
&responseStatus,
&item.ResponseBody,
&item.ErrorMessage,
&pushedAt,
&finishedAt,
); err != nil {
return VectorPushRecord{}, err
}
if requestJSON != "" {
_ = readMaybeJSON(requestJSON, &item.Request)
}
if item.Request == nil {
item.Request = map[string]any{}
}
if responseStatus.Valid {
value := int(responseStatus.Int64)
item.ResponseStatus = &value
}
item.PushedAt = parseTime(pushedAt)
if finishedAt.Valid {
value := parseTime(finishedAt.String)
item.FinishedAt = &value
}
return item, nil
}