Checkpoint on more dynamically populating tables for fieldseeker
This commit is contained in:
parent
4dc473bc85
commit
ab5be998c8
2 changed files with 485 additions and 506 deletions
943
arcgis.go
943
arcgis.go
|
|
@ -511,16 +511,20 @@ func maintainOAuth(ctx context.Context, oauth *models.OauthToken) error {
|
|||
if err != nil {
|
||||
return fmt.Errorf("Failed to update oauth token from database: %w", err)
|
||||
}
|
||||
accessTokenDelay := time.Until(oauth.AccessTokenExpires) - (3 * time.Second)
|
||||
refreshTokenDelay := time.Until(oauth.RefreshTokenExpires) - (3 * time.Second)
|
||||
var accessTokenDelay time.Duration
|
||||
if oauth.AccessTokenExpires.Before(time.Now()) {
|
||||
accessTokenDelay = 0
|
||||
accessTokenDelay = 1
|
||||
} else {
|
||||
accessTokenDelay = time.Until(oauth.AccessTokenExpires) - (3 * time.Second)
|
||||
}
|
||||
var refreshTokenDelay time.Duration
|
||||
if oauth.RefreshTokenExpires.Before(time.Now()) {
|
||||
refreshTokenDelay = 0
|
||||
refreshTokenDelay = 1
|
||||
} else {
|
||||
refreshTokenDelay = time.Until(oauth.RefreshTokenExpires) - (3 * time.Second)
|
||||
}
|
||||
log.Info().Int("id", int(oauth.ID)).Float64("seconds", accessTokenDelay.Seconds()).Str("access_token", oauth.AccessToken).Msg("Need to refresh access token")
|
||||
log.Info().Int("id", int(oauth.ID)).Float64("seconds", refreshTokenDelay.Seconds()).Str("refresh_token", oauth.RefreshToken).Msg("Need to refresh refresh token")
|
||||
log.Info().Int("id", int(oauth.ID)).Float64("seconds", accessTokenDelay.Seconds()).Msg("Need to refresh access token")
|
||||
log.Info().Int("id", int(oauth.ID)).Float64("seconds", refreshTokenDelay.Seconds()).Msg("Need to refresh refresh token")
|
||||
accessTokenTicker := time.NewTicker(accessTokenDelay)
|
||||
refreshTokenTicker := time.NewTicker(refreshTokenDelay)
|
||||
select {
|
||||
|
|
@ -1138,318 +1142,294 @@ func exportFieldseekerLayer(ctx context.Context, org *models.Organization, fssyn
|
|||
var inserts, unchanged, updates uint
|
||||
var err error
|
||||
switch l {
|
||||
case fieldseeker.LayerAerialSpraySession:
|
||||
name = "AerialSpraySession"
|
||||
rows, err := fssync.AerialSpraySession(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateAerialSpraySession(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerAerialSprayLine:
|
||||
name = "LayerAerialSprayLine"
|
||||
rows, err := fssync.AerialSprayLine(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateAerialSprayLine(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerBarrierSpray:
|
||||
name = "LayerBarrierSpray"
|
||||
rows, err := fssync.BarrierSpray(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateBarrierSpray(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerBarrierSprayRoute:
|
||||
name = "LayerBarrierSprayRoute"
|
||||
rows, err := fssync.BarrierSprayRoute(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateBarrierSprayRoute(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerContainerRelate:
|
||||
name = "LayerContainerRelate"
|
||||
rows, err := fssync.ContainerRelate(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateContainerRelate(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerFieldScoutingLog:
|
||||
name = "LayerFieldScoutingLog"
|
||||
rows, err := fssync.FieldScoutingLog(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateFieldScoutingLog(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerHabitatRelate:
|
||||
name = "LayerHabitatRelate"
|
||||
rows, err := fssync.HabitatRelate(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateHabitatRelate(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerInspectionSample:
|
||||
name = "LayerInspectionSample"
|
||||
rows, err := fssync.InspectionSample(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateInspectionSample(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerInspectionSampleDetail:
|
||||
name = "LayerInspectionSampleDetail"
|
||||
rows, err := fssync.InspectionSampleDetail(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateInspectionSampleDetail(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerLandingCount:
|
||||
name = "LayerLandingCount"
|
||||
rows, err := fssync.LandingCount(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLandingCount(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerLandingCountLocation:
|
||||
name = "LayerLandingCountLocation"
|
||||
rows, err := fssync.LandingCountLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLandingCountLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerLineLocation:
|
||||
name = "LayerLineLocation"
|
||||
rows, err := fssync.LineLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLineLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerLocationTracking:
|
||||
name = "LayerLocationTracking"
|
||||
rows, err := fssync.LocationTracking(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLocationTracking(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerMosquitoInspection:
|
||||
name = "LayerMosquitoInspection"
|
||||
rows, err := fssync.MosquitoInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateMosquitoInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerOfflineMapAreas:
|
||||
name = "LayerOfflineMapAreas"
|
||||
rows, err := fssync.OfflineMapAreas(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateOfflineMapAreas(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerProposedTreatmentArea:
|
||||
name = "LayerProposedTreatmentArea"
|
||||
rows, err := fssync.ProposedTreatmentArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateProposedTreatmentArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerPointLocation:
|
||||
name = "LayerPointLocation"
|
||||
rows, err := fssync.PointLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePointLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerPolygonLocation:
|
||||
name = "LayerPolygonLocation"
|
||||
rows, err := fssync.PolygonLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePolygonLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerPoolDetail:
|
||||
name = "LayerPoolDetail"
|
||||
rows, err := fssync.PoolDetail(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePoolDetail(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerPool:
|
||||
name = "LayerPool"
|
||||
rows, err := fssync.Pool(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePool(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerPoolBuffer:
|
||||
name = "LayerPoolBuffer"
|
||||
rows, err := fssync.PoolBuffer(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePoolBuffer(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerQALarvCount:
|
||||
name = "LayerQALarvCount"
|
||||
rows, err := fssync.QALarvCount(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQALarvCount(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerQAMosquitoInspection:
|
||||
name = "LayerQAMosquitoInspection"
|
||||
rows, err := fssync.QAMosquitoInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQAMosquitoInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerQAProductObservation:
|
||||
name = "LayerQAProductObservation"
|
||||
rows, err := fssync.QAProductObservation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQAProductObservation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerRestrictedArea:
|
||||
name = "LayerRestrictedArea"
|
||||
rows, err := fssync.RestrictedArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateRestrictedArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerRodentInspection:
|
||||
name = "LayerRodentInspection"
|
||||
rows, err := fssync.RodentInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateRodentInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
/*
|
||||
case fieldseeker.LayerAerialSpraySession:
|
||||
name = "AerialSpraySession"
|
||||
rows, err := fssync.AerialSpraySession(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateAerialSpraySession(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerAerialSprayLine:
|
||||
name = "LayerAerialSprayLine"
|
||||
rows, err := fssync.AerialSprayLine(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateAerialSprayLine(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerBarrierSpray:
|
||||
name = "LayerBarrierSpray"
|
||||
rows, err := fssync.BarrierSpray(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateBarrierSpray(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerBarrierSprayRoute:
|
||||
name = "LayerBarrierSprayRoute"
|
||||
rows, err := fssync.BarrierSprayRoute(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateBarrierSprayRoute(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerContainerRelate:
|
||||
name = "LayerContainerRelate"
|
||||
rows, err := fssync.ContainerRelate(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateContainerRelate(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerFieldScoutingLog:
|
||||
name = "LayerFieldScoutingLog"
|
||||
rows, err := fssync.FieldScoutingLog(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateFieldScoutingLog(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerHabitatRelate:
|
||||
name = "LayerHabitatRelate"
|
||||
rows, err := fssync.HabitatRelate(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateHabitatRelate(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerInspectionSample:
|
||||
name = "LayerInspectionSample"
|
||||
rows, err := fssync.InspectionSample(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateInspectionSample(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerInspectionSampleDetail:
|
||||
name = "LayerInspectionSampleDetail"
|
||||
rows, err := fssync.InspectionSampleDetail(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateInspectionSampleDetail(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerLandingCount:
|
||||
name = "LayerLandingCount"
|
||||
rows, err := fssync.LandingCount(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLandingCount(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerLandingCountLocation:
|
||||
name = "LayerLandingCountLocation"
|
||||
rows, err := fssync.LandingCountLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLandingCountLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerLineLocation:
|
||||
name = "LayerLineLocation"
|
||||
rows, err := fssync.LineLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLineLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerLocationTracking:
|
||||
name = "LayerLocationTracking"
|
||||
rows, err := fssync.LocationTracking(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateLocationTracking(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerMosquitoInspection:
|
||||
name = "LayerMosquitoInspection"
|
||||
rows, err := fssync.MosquitoInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateMosquitoInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerOfflineMapAreas:
|
||||
name = "LayerOfflineMapAreas"
|
||||
rows, err := fssync.OfflineMapAreas(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateOfflineMapAreas(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerProposedTreatmentArea:
|
||||
name = "LayerProposedTreatmentArea"
|
||||
rows, err := fssync.ProposedTreatmentArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateProposedTreatmentArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerPointLocation:
|
||||
name = "LayerPointLocation"
|
||||
rows, err := fssync.PointLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePointLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerPolygonLocation:
|
||||
name = "LayerPolygonLocation"
|
||||
rows, err := fssync.PolygonLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePolygonLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerPoolDetail:
|
||||
name = "LayerPoolDetail"
|
||||
rows, err := fssync.PoolDetail(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePoolDetail(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerPool:
|
||||
name = "LayerPool"
|
||||
rows, err := fssync.Pool(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePool(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerPoolBuffer:
|
||||
name = "LayerPoolBuffer"
|
||||
rows, err := fssync.PoolBuffer(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdatePoolBuffer(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerQALarvCount:
|
||||
name = "LayerQALarvCount"
|
||||
rows, err := fssync.QALarvCount(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQALarvCount(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerQAMosquitoInspection:
|
||||
name = "LayerQAMosquitoInspection"
|
||||
rows, err := fssync.QAMosquitoInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQAMosquitoInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerQAProductObservation:
|
||||
name = "LayerQAProductObservation"
|
||||
rows, err := fssync.QAProductObservation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateQAProductObservation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerRestrictedArea:
|
||||
name = "LayerRestrictedArea"
|
||||
rows, err := fssync.RestrictedArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateRestrictedArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerRodentInspection:
|
||||
name = "LayerRodentInspection"
|
||||
rows, err := fssync.RodentInspection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateRodentInspection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
*/
|
||||
case fieldseeker.LayerRodentLocation:
|
||||
name = "LayerRodentLocation"
|
||||
rows, err := fssync.RodentLocation(offset)
|
||||
|
|
@ -1461,176 +1441,165 @@ func exportFieldseekerLayer(ctx context.Context, org *models.Organization, fssyn
|
|||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerSampleCollection:
|
||||
name = "LayerSampleCollection"
|
||||
rows, err := fssync.SampleCollection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSampleCollection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerSampleLocation:
|
||||
name = "LayerSampleLocation"
|
||||
rows, err := fssync.SampleLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSampleLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerServiceRequest:
|
||||
name = "LayerServiceRequest"
|
||||
rows, err := fssync.ServiceRequest(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateServiceRequest(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerSpeciesAbundance:
|
||||
name = "LayerSpeciesAbundance"
|
||||
rows, err := fssync.SpeciesAbundance(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSpeciesAbundance(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerStormDrain:
|
||||
name = "LayerStormDrain"
|
||||
rows, err := fssync.StormDrain(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateStormDrain(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTracklog:
|
||||
name = "LayerTracklog"
|
||||
rows, err := fssync.Tracklog(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTracklog(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTrapLocation:
|
||||
name = "LayerTrapLocation"
|
||||
rows, err := fssync.TrapLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTrapLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTrapData:
|
||||
name = "LayerTrapData"
|
||||
rows, err := fssync.TrapData(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTrapData(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTimeCard:
|
||||
name = "LayerTimeCard"
|
||||
rows, err := fssync.TimeCard(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTimeCard(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTreatment:
|
||||
name = "LayerTreatment"
|
||||
rows, err := fssync.Treatment(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTreatment(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerTreatmentArea:
|
||||
name = "LayerTreatmentArea"
|
||||
rows, err := fssync.TreatmentArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTreatmentArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerULVSprayRoute:
|
||||
name = "LayerULVSprayRoute"
|
||||
rows, err := fssync.ULVSprayRoute(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateULVSprayRoute(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerZones:
|
||||
name = "LayerZones"
|
||||
rows, err := fssync.Zones(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateZones(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
return ss, err
|
||||
case fieldseeker.LayerZones2:
|
||||
name = "LayerZones2"
|
||||
rows, err := fssync.Zones2(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateZones2(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
/*
|
||||
case fieldseeker.LayerSampleCollection:
|
||||
name = "LayerSampleCollection"
|
||||
rows, err := fssync.SampleCollection(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSampleCollection(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerSampleLocation:
|
||||
name = "LayerSampleLocation"
|
||||
rows, err := fssync.SampleLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSampleLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerServiceRequest:
|
||||
name = "LayerServiceRequest"
|
||||
rows, err := fssync.ServiceRequest(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateServiceRequest(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerSpeciesAbundance:
|
||||
name = "LayerSpeciesAbundance"
|
||||
rows, err := fssync.SpeciesAbundance(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateSpeciesAbundance(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerStormDrain:
|
||||
name = "LayerStormDrain"
|
||||
rows, err := fssync.StormDrain(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateStormDrain(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTracklog:
|
||||
name = "LayerTracklog"
|
||||
rows, err := fssync.Tracklog(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTracklog(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTrapLocation:
|
||||
name = "LayerTrapLocation"
|
||||
rows, err := fssync.TrapLocation(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTrapLocation(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTrapData:
|
||||
name = "LayerTrapData"
|
||||
rows, err := fssync.TrapData(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTrapData(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTimeCard:
|
||||
name = "LayerTimeCard"
|
||||
rows, err := fssync.TimeCard(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTimeCard(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTreatment:
|
||||
name = "LayerTreatment"
|
||||
rows, err := fssync.Treatment(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTreatment(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerTreatmentArea:
|
||||
name = "LayerTreatmentArea"
|
||||
rows, err := fssync.TreatmentArea(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateTreatmentArea(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerULVSprayRoute:
|
||||
name = "LayerULVSprayRoute"
|
||||
rows, err := fssync.ULVSprayRoute(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateULVSprayRoute(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerZones:
|
||||
name = "LayerZones"
|
||||
rows, err := fssync.Zones(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateZones(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
case fieldseeker.LayerZones2:
|
||||
name = "LayerZones2"
|
||||
rows, err := fssync.Zones2(offset)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to query %s: %w", name, err)
|
||||
}
|
||||
inserts, updates, err = db.SaveOrUpdateZones2(rows)
|
||||
if err != nil {
|
||||
return SyncStats{}, fmt.Errorf("Failed to update %s: %w", name, err)
|
||||
}
|
||||
unchanged = uint(len(rows)) - inserts - updates
|
||||
*/
|
||||
default:
|
||||
return ss, errors.New("Unrecognized layer")
|
||||
//return ss, errors.New("Unrecognized layer")
|
||||
return ss, nil
|
||||
}
|
||||
ss.Inserts = inserts
|
||||
ss.Updates = updates
|
||||
|
|
|
|||
|
|
@ -138,11 +138,34 @@ type InsertResultRow struct {
|
|||
Version int `db:"version_num"`
|
||||
}
|
||||
|
||||
func SaveOrUpdateRodentLocation(ctx context.Context, org *models.Organization, fs []*fslayer.RodentLocation) (inserts uint, updates uint, err error) {
|
||||
log.Info().Int("rows", len(fs)).Msg("Processing RodentLocation")
|
||||
type rowConverter[T any] func(*T) []SqlParam
|
||||
|
||||
func doUpdatesViaFunction[T any](ctx context.Context, org *models.Organization, fs []*T, table string, procedure string, converter rowConverter[T]) (inserts uint, updates uint, err error) {
|
||||
//log.Info().Int("rows", len(fs)).Msg("Processing RodentLocation")
|
||||
for _, row := range fs {
|
||||
procedure := "fieldseeker.insert_rodentlocation"
|
||||
q := queryStoredProcedure(procedure,
|
||||
params := converter(row)
|
||||
q := queryStoredProcedure(procedure, params...)
|
||||
query := psql.RawQuery(q)
|
||||
log.Info().Str("query", q).Msg("querying")
|
||||
result, err := bob.One[InsertResultRow](ctx, PGInstance.BobDB, query, scan.StructMapper[InsertResultRow]())
|
||||
if err != nil {
|
||||
return inserts, updates, fmt.Errorf("Failed to execute %s: %w", procedure, err)
|
||||
}
|
||||
if result.Inserted {
|
||||
if result.Version == 1 {
|
||||
inserts += 1
|
||||
} else {
|
||||
updates += 1
|
||||
}
|
||||
}
|
||||
log.Info().Bool("inserted", result.Inserted).Int("version", result.Version).Msg("querying")
|
||||
}
|
||||
return inserts, updates, err
|
||||
|
||||
}
|
||||
func SaveOrUpdateRodentLocation(ctx context.Context, org *models.Organization, fs []*fslayer.RodentLocation) (inserts uint, updates uint, err error) {
|
||||
return doUpdatesViaFunction(ctx, org, fs, "RodentLocation", "fieldseeker.insert_rodentlocation", func(row *fslayer.RodentLocation) []SqlParam {
|
||||
return []SqlParam{
|
||||
Uint("p_objectid", row.ObjectID),
|
||||
String("p_locationname", row.LocationName),
|
||||
String("p_zone", row.Zone),
|
||||
|
|
@ -173,23 +196,10 @@ func SaveOrUpdateRodentLocation(ctx context.Context, org *models.Organization, f
|
|||
Timestamp("p_editdate", row.EditDate),
|
||||
String("p_editor", row.Editor),
|
||||
String("p_jurisdiction", row.Jurisdiction),
|
||||
)
|
||||
query := psql.RawQuery(q)
|
||||
log.Info().Str("query", q).Msg("querying")
|
||||
result, err := bob.One[InsertResultRow](ctx, PGInstance.BobDB, query, scan.StructMapper[InsertResultRow]())
|
||||
if err != nil {
|
||||
return inserts, updates, fmt.Errorf("Failed to execute %s: %w", procedure, err)
|
||||
}
|
||||
if result.Inserted {
|
||||
if result.Version == 1 {
|
||||
inserts += 1
|
||||
} else {
|
||||
updates += 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return inserts, updates, err
|
||||
})
|
||||
}
|
||||
|
||||
func SaveOrUpdateSampleCollection(fs []*fslayer.SampleCollection) (inserts uint, updates uint, err error) {
|
||||
//log.Warn().Int("len", len(fs)).Msg("Ignoring SampleCollection rows")
|
||||
return 0, 0, nil
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue