forked from mirrors/homebox
fix: profile bugs and add full path (#792)
* fix template rendering * tidy * fix missing currencies and profile errors * endpoint for fullpath of an item * endpoint test * fix assertions
This commit is contained in:
parent
3ed50f5a1b
commit
c708b1759e
19 changed files with 416 additions and 105 deletions
|
@ -20,4 +20,4 @@ import "github.com/google/uuid"
|
|||
}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -260,12 +260,20 @@ type TreeQuery struct {
|
|||
WithItems bool `json:"withItems" schema:"withItems"`
|
||||
}
|
||||
|
||||
type LocationPath struct {
|
||||
type ItemType string
|
||||
|
||||
const (
|
||||
ItemTypeLocation ItemType = "location"
|
||||
ItemTypeItem ItemType = "item"
|
||||
)
|
||||
|
||||
type ItemPath struct {
|
||||
Type ItemType `json:"type"`
|
||||
ID uuid.UUID `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
func (r *LocationRepository) PathForLoc(ctx context.Context, GID, locID uuid.UUID) ([]LocationPath, error) {
|
||||
func (r *LocationRepository) PathForLoc(ctx context.Context, GID, locID uuid.UUID) ([]ItemPath, error) {
|
||||
query := `WITH RECURSIVE location_path AS (
|
||||
SELECT id, name, location_children
|
||||
FROM locations
|
||||
|
@ -288,10 +296,11 @@ func (r *LocationRepository) PathForLoc(ctx context.Context, GID, locID uuid.UUI
|
|||
}
|
||||
defer func() { _ = rows.Close() }()
|
||||
|
||||
var locations []LocationPath
|
||||
var locations []ItemPath
|
||||
|
||||
for rows.Next() {
|
||||
var location LocationPath
|
||||
var location ItemPath
|
||||
location.Type = ItemTypeLocation
|
||||
if err := rows.Scan(&location.ID, &location.Name); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue