Start providing organization info and URLs is user/self
The new frontend needs it to do its work.
This commit is contained in:
parent
736c71eefc
commit
21180816be
19 changed files with 78 additions and 68 deletions
|
|
@ -44,7 +44,7 @@ func apiAudioPost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
Deleted: omitnull.FromPtr(payload.Deleted),
|
||||
DeletorID: omitnull.FromPtr(payload.DeletorID),
|
||||
Duration: omit.From(payload.Duration),
|
||||
OrganizationID: omit.From(u.Organization.ID()),
|
||||
OrganizationID: omit.From(u.Organization.ID),
|
||||
Transcription: omitnull.FromPtr(payload.Transcription),
|
||||
TranscriptionUserEdited: omit.From(payload.TranscriptionUserEdited),
|
||||
Version: omit.From(payload.Version),
|
||||
|
|
@ -72,7 +72,7 @@ func apiAudioContentPost(w http.ResponseWriter, r *http.Request, user platform.U
|
|||
ctx := r.Context()
|
||||
a, err := models.NoteAudios.Query(
|
||||
models.SelectWhere.NoteAudios.UUID.EQ(u),
|
||||
models.SelectWhere.NoteAudios.OrganizationID.EQ(user.Organization.ID()),
|
||||
models.SelectWhere.NoteAudios.OrganizationID.EQ(user.Organization.ID),
|
||||
).One(ctx, db.PGInstance.BobDB)
|
||||
background.NewAudioTranscode(ctx, db.PGInstance.BobDB, a.ID)
|
||||
w.WriteHeader(http.StatusOK)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ type contentListCommunication struct {
|
|||
}
|
||||
|
||||
func listCommunication(ctx context.Context, r *http.Request, user platform.User, query queryParams) (*contentListCommunication, *nhttp.ErrorWithStatus) {
|
||||
reports, err := publicreport.ReportsForOrganization(ctx, user.Organization.ID())
|
||||
reports, err := publicreport.ReportsForOrganization(ctx, user.Organization.ID)
|
||||
if err != nil {
|
||||
return nil, nhttp.NewError("nuisance report query: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,11 +86,11 @@ func streamEvents(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
connection := ConnectionSSE{
|
||||
chanEvent: make(chan platform.Event),
|
||||
id: uid,
|
||||
organizationID: u.Organization.ID(),
|
||||
organizationID: u.Organization.ID,
|
||||
userID: u.ID,
|
||||
}
|
||||
connectionsSSE[&connection] = true
|
||||
log.Debug().Int32("org", u.Organization.ID()).Int("user", u.ID).Str("id", uid.String()).Msg("connected SSE client")
|
||||
log.Debug().Int32("org", u.Organization.ID).Int("user", u.ID).Str("id", uid.String()).Msg("connected SSE client")
|
||||
|
||||
// Send an initial connected event
|
||||
fmt.Fprintf(w, "event: connected\ndata: {\"status\": \"connected\", \"time\": \"%s\"}\n\n", time.Now().Format(time.RFC3339))
|
||||
|
|
@ -107,7 +107,7 @@ func streamEvents(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
for {
|
||||
select {
|
||||
case <-done:
|
||||
log.Debug().Int32("org", u.Organization.ID()).Int("user", u.ID).Str("id", uid.String()).Msg("Client closed connection")
|
||||
log.Debug().Int32("org", u.Organization.ID).Int("user", u.ID).Str("id", uid.String()).Msg("Client closed connection")
|
||||
delete(connectionsSSE, &connection)
|
||||
return
|
||||
case t := <-ticker.C:
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ func apiImagePost(w http.ResponseWriter, r *http.Request, u platform.User) {
|
|||
CreatorID: omit.From(int32(u.ID)),
|
||||
Deleted: omitnull.FromPtr(payload.Deleted),
|
||||
DeletorID: omitnull.FromPtr(payload.DeletorID),
|
||||
OrganizationID: omit.From(u.Organization.ID()),
|
||||
OrganizationID: omit.From(u.Organization.ID),
|
||||
Version: omit.From(payload.Version),
|
||||
UUID: omit.From(noteUUID),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ func listReviewTaskPool(ctx context.Context, r *http.Request, user platform.User
|
|||
"COUNT(*) AS total",
|
||||
),
|
||||
sm.From("review_task"),
|
||||
sm.Where(psql.Quote("review_task", "organization_id").EQ(psql.Arg(user.Organization.ID()))),
|
||||
sm.Where(psql.Quote("review_task", "organization_id").EQ(psql.Arg(user.Organization.ID))),
|
||||
sm.Where(psql.Quote("review_task", "reviewed").IsNull()),
|
||||
), scan.StructMapper[_RowTotal]())
|
||||
if err != nil {
|
||||
|
|
@ -103,7 +103,7 @@ func listReviewTaskPool(ctx context.Context, r *http.Request, user platform.User
|
|||
psql.Quote("site", "address_id"),
|
||||
psql.Quote("address", "id"),
|
||||
),
|
||||
sm.Where(psql.Quote("review_task", "organization_id").EQ(psql.Arg(user.Organization.ID()))),
|
||||
sm.Where(psql.Quote("review_task", "organization_id").EQ(psql.Arg(user.Organization.ID))),
|
||||
sm.Where(psql.Quote("review_task", "reviewed").IsNull()),
|
||||
sm.Limit(limit),
|
||||
), scan.StructMapper[_Row]())
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ func AddRoutes(r chi.Router) {
|
|||
r.Method("GET", "/signal", authenticatedHandlerJSON(listSignal))
|
||||
r.Method("GET", "/trap-data", auth.NewEnsureAuth(apiTrapData))
|
||||
r.Method("GET", "/tile/{z}/{y}/{x}", auth.NewEnsureAuth(getTile))
|
||||
r.Method("GET", "/user/self", authenticatedHandlerJSON(getUser))
|
||||
r.Method("GET", "/user/self", authenticatedHandlerJSON(getUserSelf))
|
||||
r.Method("GET", "/user/suggestion", authenticatedHandlerJSON(listUserSuggestion))
|
||||
r.Method("GET", "/user", authenticatedHandlerJSON(listUser))
|
||||
|
||||
|
|
|
|||
19
api/user.go
19
api/user.go
|
|
@ -4,17 +4,32 @@ import (
|
|||
"context"
|
||||
"net/http"
|
||||
|
||||
"github.com/Gleipnir-Technology/nidus-sync/html"
|
||||
nhttp "github.com/Gleipnir-Technology/nidus-sync/http"
|
||||
"github.com/Gleipnir-Technology/nidus-sync/platform"
|
||||
)
|
||||
|
||||
func getUser(ctx context.Context, r *http.Request, user platform.User, query queryParams) (*platform.User, *nhttp.ErrorWithStatus) {
|
||||
type contentURLs struct {
|
||||
Tegola string `json:"tegola"`
|
||||
}
|
||||
type contentUserSelf struct {
|
||||
Self platform.User `json:"self"`
|
||||
URLs contentURLs `json:"urls"`
|
||||
}
|
||||
|
||||
func getUserSelf(ctx context.Context, r *http.Request, user platform.User, query queryParams) (*contentUserSelf, *nhttp.ErrorWithStatus) {
|
||||
counts, err := platform.NotificationCountsForUser(ctx, user)
|
||||
if err != nil {
|
||||
return nil, nhttp.NewError("get notifications: %w", err)
|
||||
}
|
||||
user.NotificationCounts = *counts
|
||||
return &user, nil
|
||||
urls := html.NewContentURL()
|
||||
return &contentUserSelf{
|
||||
Self: user,
|
||||
URLs: contentURLs{
|
||||
Tegola: urls.Tegola,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
type responseListUser struct {
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ func SourceByGlobalID(ctx context.Context, org Organization, id uuid.UUID) (*Bre
|
|||
}
|
||||
|
||||
func TrapsBySource(ctx context.Context, org Organization, sourceID uuid.UUID) ([]TrapNearby, error) {
|
||||
locations, err := sql.TrapLocationBySourceID(org.ID(), sourceID).All(ctx, db.PGInstance.BobDB)
|
||||
locations, err := sql.TrapLocationBySourceID(org.ID, sourceID).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to query rows: %w", err)
|
||||
}
|
||||
|
|
@ -63,12 +63,12 @@ func TrapsBySource(ctx context.Context, org Organization, sourceID uuid.UUID) ([
|
|||
location_ids = append(location_ids, location.TrapLocationGlobalid)
|
||||
args = append(args, psql.Arg(location.TrapLocationGlobalid))
|
||||
}
|
||||
trap_data, err := sql.TrapDataByLocationIDRecent(org.ID(), location_ids).All(ctx, db.PGInstance.BobDB)
|
||||
trap_data, err := sql.TrapDataByLocationIDRecent(org.ID, location_ids).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to query trap data: %w", err)
|
||||
}
|
||||
|
||||
counts, err := sql.TrapCountByLocationID(org.ID(), location_ids).All(ctx, db.PGInstance.BobDB)
|
||||
counts, err := sql.TrapCountByLocationID(org.ID, location_ids).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to query trap counts: %w", err)
|
||||
}
|
||||
|
|
@ -101,12 +101,12 @@ func TrapByGlobalId(ctx context.Context, org Organization, id uuid.UUID) (*Trap,
|
|||
return nil, fmt.Errorf("Failed to get trap location: %w", err)
|
||||
}
|
||||
|
||||
trap_data, err := sql.TrapDataByLocationIDRecent(org.ID(), []uuid.UUID{id}).All(ctx, db.PGInstance.BobDB)
|
||||
trap_data, err := sql.TrapDataByLocationIDRecent(org.ID, []uuid.UUID{id}).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to query trap data: %w", err)
|
||||
}
|
||||
|
||||
counts, err := sql.TrapCountByLocationID(org.ID(), []uuid.UUID{id}).All(ctx, db.PGInstance.BobDB)
|
||||
counts, err := sql.TrapCountByLocationID(org.ID, []uuid.UUID{id}).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Failed to query trap counts: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ func LeadCreate(ctx context.Context, user User, signal_id int32, site_id int32,
|
|||
Created: omit.From(time.Now()),
|
||||
Creator: omit.From(int32(user.ID)),
|
||||
// ID
|
||||
OrganizationID: omit.From(int32(user.Organization.ID())),
|
||||
OrganizationID: omit.From(int32(user.Organization.ID)),
|
||||
SiteID: omitnull.From(site_id),
|
||||
Type: omit.From(enums.LeadtypeGreenPool),
|
||||
}).One(ctx, txn)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func NoteAudioCreate(ctx context.Context, user User, setter models.NoteAudioSett
|
|||
return fmt.Errorf("create note_audio: %w", err)
|
||||
}
|
||||
}
|
||||
event.Created(event.TypeNoteAudio, user.Organization.ID(), strconv.Itoa(int(note_audio.ID)))
|
||||
event.Created(event.TypeNoteAudio, user.Organization.ID, strconv.Itoa(int(note_audio.ID)))
|
||||
txn.Commit(ctx)
|
||||
|
||||
return nil
|
||||
|
|
@ -45,7 +45,7 @@ func NoteImageCreate(ctx context.Context, user User, setter models.NoteImageSett
|
|||
return fmt.Errorf("create note_image: %w", err)
|
||||
}
|
||||
}
|
||||
event.Created(event.TypeNoteImage, user.Organization.ID(), strconv.Itoa(int(note_image.ID)))
|
||||
event.Created(event.TypeNoteImage, user.Organization.ID, strconv.Itoa(int(note_image.ID)))
|
||||
txn.Commit(ctx)
|
||||
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -12,10 +12,8 @@ import (
|
|||
)
|
||||
|
||||
type Organization struct {
|
||||
ServiceAreaXmax float64
|
||||
ServiceAreaXmin float64
|
||||
ServiceAreaYmax float64
|
||||
ServiceAreaYmin float64
|
||||
ID int32 `json:"id"`
|
||||
ServiceArea *ServiceArea `json:"service_area"`
|
||||
|
||||
model *models.Organization
|
||||
}
|
||||
|
|
@ -61,11 +59,8 @@ func (o Organization) MarshalJSON() ([]byte, error) {
|
|||
func (o Organization) Name() string {
|
||||
return o.model.Name
|
||||
}
|
||||
func (o Organization) ID() int32 {
|
||||
return o.model.ID
|
||||
}
|
||||
func (o Organization) IsSyncOngoing() bool {
|
||||
return IsSyncOngoing(o.ID())
|
||||
return IsSyncOngoing(o.ID)
|
||||
}
|
||||
func (o Organization) FieldseekerSyncLatest(ctx context.Context) (*models.FieldseekerSync, error) {
|
||||
sync, err := o.model.FieldseekerSyncs(sm.OrderBy("created").Desc()).One(ctx, db.PGInstance.BobDB)
|
||||
|
|
@ -83,24 +78,6 @@ type ServiceArea struct {
|
|||
Max Point
|
||||
}
|
||||
|
||||
func (o Organization) ServiceArea() ServiceArea {
|
||||
if o.model.ServiceAreaXmax.IsNull() ||
|
||||
o.model.ServiceAreaXmin.IsNull() ||
|
||||
o.model.ServiceAreaYmax.IsNull() ||
|
||||
o.model.ServiceAreaYmin.IsNull() {
|
||||
return ServiceArea{}
|
||||
}
|
||||
return ServiceArea{
|
||||
Min: Point{
|
||||
X: o.model.ServiceAreaXmin.MustGet(),
|
||||
Y: o.model.ServiceAreaYmin.MustGet(),
|
||||
},
|
||||
Max: Point{
|
||||
X: o.model.ServiceAreaXmax.MustGet(),
|
||||
Y: o.model.ServiceAreaYmax.MustGet(),
|
||||
},
|
||||
}
|
||||
}
|
||||
func (o Organization) ServiceRequestRecent(ctx context.Context) ([]*models.FieldseekerServicerequest, error) {
|
||||
results, err := o.model.Servicerequests(sm.OrderBy("creationdate").Desc(), sm.Limit(10)).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
|
|
@ -120,7 +97,25 @@ func OrganizationByID(ctx context.Context, id int) (*Organization, error) {
|
|||
return &o, nil
|
||||
}
|
||||
func newOrganization(org *models.Organization) Organization {
|
||||
var sa *ServiceArea
|
||||
if org.ServiceAreaXmax.IsValue() &&
|
||||
org.ServiceAreaXmin.IsValue() &&
|
||||
org.ServiceAreaYmax.IsValue() &&
|
||||
org.ServiceAreaYmin.IsValue() {
|
||||
sa = &ServiceArea{
|
||||
Min: Point{
|
||||
X: org.ServiceAreaXmin.MustGet(),
|
||||
Y: org.ServiceAreaYmin.MustGet(),
|
||||
},
|
||||
Max: Point{
|
||||
X: org.ServiceAreaXmax.MustGet(),
|
||||
Y: org.ServiceAreaYmax.MustGet(),
|
||||
},
|
||||
}
|
||||
}
|
||||
return Organization{
|
||||
model: org,
|
||||
ID: org.ID,
|
||||
ServiceArea: sa,
|
||||
model: org,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ func PublicreportInvalid(ctx context.Context, user User, report_id string) error
|
|||
})
|
||||
|
||||
log.Info().Int32("id", report.ID).Msg("Report marked as invalid")
|
||||
event.Updated(event.TypeRMOReport, user.Organization.ID(), report_id)
|
||||
event.Updated(event.TypeRMOReport, user.Organization.ID, report_id)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +208,7 @@ func reportCreate(ctx context.Context, setter_report models.PublicreportReportSe
|
|||
func reportFromID(ctx context.Context, user User, report_id string) (*models.PublicreportReport, error) {
|
||||
report, err := models.PublicreportReports.Query(
|
||||
models.SelectWhere.PublicreportReports.PublicID.EQ(report_id),
|
||||
models.SelectWhere.PublicreportReports.OrganizationID.EQ(user.Organization.ID()),
|
||||
models.SelectWhere.PublicreportReports.OrganizationID.EQ(user.Organization.ID),
|
||||
).One(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ func ReviewPoolCreate(ctx context.Context, user User, task_id int32, status stri
|
|||
defer txn.Rollback(ctx)
|
||||
review_task, err := models.ReviewTasks.Query(
|
||||
models.SelectWhere.ReviewTasks.ID.EQ(task_id),
|
||||
models.SelectWhere.ReviewTasks.OrganizationID.EQ(user.Organization.ID()),
|
||||
models.SelectWhere.ReviewTasks.OrganizationID.EQ(user.Organization.ID),
|
||||
).One(ctx, txn)
|
||||
if err != nil {
|
||||
if err.Error() == "sql: no rows in result set" {
|
||||
|
|
@ -66,7 +66,7 @@ func ReviewPoolCreate(ctx context.Context, user User, task_id int32, status stri
|
|||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
event.Updated(event.TypeReviewTask, user.Organization.ID(), strconv.Itoa(int(review_task.ID)))
|
||||
event.Updated(event.TypeReviewTask, user.Organization.ID, strconv.Itoa(int(review_task.ID)))
|
||||
txn.Commit(ctx)
|
||||
log.Info().Int32("id", review_task.ID).Str("status", status).Msg("review completed")
|
||||
return review_task.ID, err
|
||||
|
|
@ -147,7 +147,7 @@ func commitReviewPool(ctx context.Context, txn bob.Tx, user User, review_task_po
|
|||
Creator: omit.From[int32](int32(user.ID)),
|
||||
FeaturePoolFeatureID: omitnull.From(feature_pool.FeatureID),
|
||||
//ID: omit.Val[int32],
|
||||
OrganizationID: omit.From(user.Organization.ID()),
|
||||
OrganizationID: omit.From(user.Organization.ID),
|
||||
ReportID: omitnull.FromPtr[int32](nil),
|
||||
Species: omitnull.FromPtr[enums.Mosquitospecies](nil),
|
||||
Type: omit.From(enums.SignaltypeFlyoverPool),
|
||||
|
|
@ -157,7 +157,7 @@ func commitReviewPool(ctx context.Context, txn bob.Tx, user User, review_task_po
|
|||
if err != nil {
|
||||
return nhttp.NewError("create signal: %w", err)
|
||||
}
|
||||
event.Created(event.TypeSignal, user.Organization.ID(), strconv.Itoa(int(signal.ID)))
|
||||
event.Created(event.TypeSignal, user.Organization.ID, strconv.Itoa(int(signal.ID)))
|
||||
log.Debug().Int32("id", signal.ID).Msg("created pool signal")
|
||||
}
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ func SignalCreateFromPublicreport(ctx context.Context, user User, report_id stri
|
|||
|
||||
report, err := models.PublicreportReports.Query(
|
||||
models.SelectWhere.PublicreportReports.PublicID.EQ(report_id),
|
||||
models.SelectWhere.PublicreportReports.OrganizationID.EQ(user.Organization.ID()),
|
||||
models.SelectWhere.PublicreportReports.OrganizationID.EQ(user.Organization.ID),
|
||||
).One(ctx, txn)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("query report existence: %w", err)
|
||||
|
|
@ -123,7 +123,7 @@ func SignalCreateFromPublicreport(ctx context.Context, user User, report_id stri
|
|||
Creator: omit.From(int32(user.ID)),
|
||||
FeaturePoolFeatureID: omitnull.FromPtr[int32](nil),
|
||||
// ID
|
||||
OrganizationID: omit.From(int32(user.Organization.ID())),
|
||||
OrganizationID: omit.From(int32(user.Organization.ID)),
|
||||
Location: omit.From(location),
|
||||
ReportID: omitnull.From(report.ID),
|
||||
Species: omitnull.FromPtr[enums.Mosquitospecies](nil),
|
||||
|
|
@ -143,14 +143,14 @@ func SignalCreateFromPublicreport(ctx context.Context, user User, report_id stri
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to update report %d: %w", report_id, err)
|
||||
}
|
||||
event.Created(event.TypeSignal, user.Organization.ID(), strconv.Itoa(int(signal.ID)))
|
||||
event.Created(event.TypeSignal, user.Organization.ID, strconv.Itoa(int(signal.ID)))
|
||||
txn.Commit(ctx)
|
||||
|
||||
return &signal.ID, nil
|
||||
}
|
||||
|
||||
func SignalList(ctx context.Context, user User, limit int) ([]*Signal, error) {
|
||||
org_id := user.Organization.ID()
|
||||
org_id := user.Organization.ID
|
||||
rows, err := bob.All(ctx, db.PGInstance.BobDB, psql.Select(
|
||||
sm.Columns(
|
||||
"signal.addressed AS addressed",
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func SiteFromSignal(ctx context.Context, user User, signal_id int32) (*int32, er
|
|||
psql.Quote("pool", "site_id").EQ(psql.Quote("site", "id")),
|
||||
),
|
||||
sm.Where(psql.Quote("signal_pool", "signal_id").EQ(psql.Arg(signal_id))),
|
||||
sm.Where(psql.Quote("site", "organization_id").EQ(psql.Arg(user.Organization.ID()))),
|
||||
sm.Where(psql.Quote("site", "organization_id").EQ(psql.Arg(user.Organization.ID))),
|
||||
), scan.StructMapper[_Row]())
|
||||
if err != nil {
|
||||
if err.Error() == "sql: no rows in result set" {
|
||||
|
|
@ -54,7 +54,7 @@ func SiteCreate(ctx context.Context, txn bob.Tx, user User, address_id int32) (*
|
|||
FileID: omitnull.FromPtr[int32](nil),
|
||||
//ID:
|
||||
Notes: omit.From(""),
|
||||
OrganizationID: omit.From(user.Organization.ID()),
|
||||
OrganizationID: omit.From(user.Organization.ID),
|
||||
OwnerName: omit.From(""),
|
||||
OwnerPhoneE164: omitnull.FromPtr[string](nil),
|
||||
ParcelID: omitnull.FromPtr[int32](nil),
|
||||
|
|
@ -66,7 +66,7 @@ func SiteCreate(ctx context.Context, txn bob.Tx, user User, address_id int32) (*
|
|||
func siteFromAddress(ctx context.Context, txn bob.Tx, user User, address_id int32) (*models.Site, error) {
|
||||
site, err := models.Sites.Query(
|
||||
models.SelectWhere.Sites.AddressID.EQ(address_id),
|
||||
models.SelectWhere.Sites.OrganizationID.EQ(user.Organization.ID()),
|
||||
models.SelectWhere.Sites.OrganizationID.EQ(user.Organization.ID),
|
||||
).One(ctx, txn)
|
||||
if err == nil {
|
||||
return site, nil
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ func NewUpload(ctx context.Context, u User, upload file.FileUpload, t enums.File
|
|||
CreatorID: omit.From(int32(u.ID)),
|
||||
Deleted: omitnull.FromPtr[time.Time](nil),
|
||||
Name: omit.From(upload.Name),
|
||||
OrganizationID: omit.From(u.Organization.ID()),
|
||||
OrganizationID: omit.From(u.Organization.ID),
|
||||
Status: omit.From(enums.FileuploadFilestatustypeUploaded),
|
||||
SizeBytes: omit.From(int32(upload.SizeBytes)),
|
||||
FileUUID: omit.From(upload.UUID),
|
||||
|
|
@ -93,7 +93,7 @@ func UploadCommit(ctx context.Context, org Organization, file_id int32, committe
|
|||
um.SetCol("status").ToArg("committing"),
|
||||
um.SetCol("committer").ToArg(committer.ID),
|
||||
um.Where(psql.Quote("id").EQ(psql.Arg(file_id))),
|
||||
um.Where(psql.Quote("organization_id").EQ(psql.Arg(org.ID()))),
|
||||
um.Where(psql.Quote("organization_id").EQ(psql.Arg(org.ID))),
|
||||
).Exec(ctx, txn)
|
||||
if err != nil {
|
||||
return fmt.Errorf("update upload: %w", err)
|
||||
|
|
@ -111,7 +111,7 @@ func UploadDiscard(ctx context.Context, org Organization, file_id int32) error {
|
|||
um.Table(models.FileuploadFiles.Alias()),
|
||||
um.SetCol("status").ToArg("discarded"),
|
||||
um.Where(psql.Quote("id").EQ(psql.Arg(file_id))),
|
||||
um.Where(psql.Quote("organization_id").EQ(psql.Arg(org.ID()))),
|
||||
um.Where(psql.Quote("organization_id").EQ(psql.Arg(org.ID))),
|
||||
).Exec(ctx, db.PGInstance.BobDB)
|
||||
return err
|
||||
}
|
||||
|
|
@ -140,7 +140,7 @@ func UploadSummaryList(ctx context.Context, org Organization) ([]UploadSummary,
|
|||
),
|
||||
sm.From("fileupload.csv").As("csv"),
|
||||
sm.InnerJoin("fileupload.file").As("file").OnEQ(psql.Raw("csv.file_id"), psql.Raw("file.id")),
|
||||
sm.Where(psql.Quote("file", "organization_id").EQ(psql.Arg(org.ID()))),
|
||||
sm.Where(psql.Quote("file", "organization_id").EQ(psql.Arg(org.ID))),
|
||||
sm.OrderBy("created").Desc(),
|
||||
), scan.StructMapper[UploadSummary]())
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ func userSuggestionNonRoot(ctx context.Context, user User, query_arg string) ([]
|
|||
),
|
||||
),
|
||||
sm.Where(
|
||||
psql.Quote("organization_id").EQ(psql.Arg(user.Organization.ID())),
|
||||
psql.Quote("organization_id").EQ(psql.Arg(user.Organization.ID)),
|
||||
),
|
||||
).All(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -133,12 +133,12 @@ func postConfigurationIntegrationArcgis(ctx context.Context, r *http.Request, u
|
|||
_, err := psql.Update(
|
||||
um.Table("organization"),
|
||||
um.SetCol("arcgis_map_service_id").ToArg(f.MapService),
|
||||
um.Where(psql.Quote("id").EQ(psql.Arg(u.Organization.ID()))),
|
||||
um.Where(psql.Quote("id").EQ(psql.Arg(u.Organization.ID))),
|
||||
).Exec(ctx, db.PGInstance.BobDB)
|
||||
if err != nil {
|
||||
return "", nhttp.NewError("Failed to update map service config: %w", err)
|
||||
}
|
||||
log.Info().Str("map-service", *f.MapService).Int32("org-id", u.Organization.ID()).Msg("changed map service")
|
||||
log.Info().Str("map-service", *f.MapService).Int32("org-id", u.Organization.ID).Msg("changed map service")
|
||||
} else {
|
||||
log.Info().Msg("no map service")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ func getUploadByID(ctx context.Context, r *http.Request, u platform.User) (*html
|
|||
return nil, nhttp.NewError("Failed to parse file_id: %w", err)
|
||||
}
|
||||
file_id := int32(file_id_)
|
||||
detail, err := platform.GetUploadDetail(ctx, u.Organization.ID(), file_id)
|
||||
detail, err := platform.GetUploadDetail(ctx, u.Organization.ID, file_id)
|
||||
if err != nil {
|
||||
return nil, nhttp.NewError("Failed to get pool: %w", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue