Start to populate site information in review task

This commit is contained in:
Eli Ribble 2026-04-16 06:58:05 +00:00
parent 03dccb638a
commit c4c22f6733
No known key found for this signature in database
6 changed files with 71 additions and 2 deletions

View file

@ -39,7 +39,6 @@ type reviewTask struct {
type reviewTaskPool struct {
Condition string `json:"condition"`
Location types.Location `json:"location"`
Owner types.Contact `json:"owner"`
Site types.Site `json:"site"`
}
type contentListReviewTask struct {
@ -77,7 +76,7 @@ func (res *reviewTaskR) List(ctx context.Context, r *http.Request, user platform
Longitude float64 `db:"longitude"`
Reviewed *time.Time `db:"reviewed"`
ReviewerID *int32 `db:"reviewer_id"`
Species *string `db:"species"`
SiteID int32 `db:"site_id"`
Title string `db:"title"`
Type string `db:"type"`
}
@ -98,6 +97,7 @@ func (res *reviewTaskR) List(ctx context.Context, r *http.Request, user platform
"address.unit AS \"address.unit\"",
"ST_Y(address.location) AS latitude",
"ST_X(address.location) AS longitude",
"site.id AS site_id",
),
sm.From("review_task_pool"),
sm.InnerJoin("feature_pool").OnEQ(
@ -130,8 +130,20 @@ func (res *reviewTaskR) List(ctx context.Context, r *http.Request, user platform
if err != nil {
return nil, nhttp.NewError("users by id: %w", err)
}
site_ids := make([]int32, len(rows))
for i, row := range rows {
site_ids[i] = row.SiteID
}
sites_by_id, err := platform.SitesByID(ctx, site_ids)
if err != nil {
return nil, nhttp.NewError("sites by id: %w", err)
}
tasks := make([]reviewTask, len(rows))
for i, row := range rows {
site, ok := sites_by_id[row.SiteID]
if !ok {
return nil, nhttp.NewError("no site %d", row.SiteID)
}
tasks[i] = reviewTask{
Address: row.Address,
Created: row.Created,
@ -143,6 +155,7 @@ func (res *reviewTaskR) List(ctx context.Context, r *http.Request, user platform
Latitude: row.Latitude,
Longitude: row.Longitude,
},
Site: types.SiteFromModel(site),
},
Reviewed: row.Reviewed,
Reviewer: userOrNil(users_by_id, row.ReviewerID),

View file

@ -53,6 +53,7 @@ type sessionURLAPI struct {
ReviewTask string `json:"review_task"`
ServiceRequest string `json:"service_request"`
Signal string `json:"signal"`
Site string `json:"site"`
Sync string `json:"sync"`
Upload string `json:"upload"`
User string `json:"user"`
@ -99,6 +100,7 @@ func (res *sessionR) Get(ctx context.Context, r *http.Request, user platform.Use
ReviewTask: config.MakeURLNidus("/api/review-task"),
ServiceRequest: config.MakeURLNidus("/api/service-request"),
Signal: config.MakeURLNidus("/api/signal"),
Site: config.MakeURLNidus("/api/site"),
Sync: config.MakeURLNidus("/api/sync"),
Upload: config.MakeURLNidus("/api/upload"),
User: config.MakeURLNidus("/api/user"),