Skip to content

Commit

Permalink
Remove superfluous container data.Entries.
Browse files Browse the repository at this point in the history
  • Loading branch information
knadh committed Jun 11, 2022
1 parent 173d624 commit ac8313c
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 23 deletions.
6 changes: 3 additions & 3 deletions cmd/dictpress/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ func handleGetPendingEntries(c echo.Context) error {

// Search and compose results.
out := &results{
Entries: data.Entries{},
Entries: []data.Entry{},
}
res, total, err := app.data.GetPendingEntries("", nil, pg.Offset, pg.Limit)
if err != nil {
Expand Down Expand Up @@ -130,9 +130,9 @@ func handleGetEntry(c echo.Context) error {
return echo.NewHTTPError(http.StatusInternalServerError, err.Error())
}

e.Relations = make(data.Entries, 0)
e.Relations = make([]data.Entry, 0)

entries := data.Entries{e}
entries := []data.Entry{e}
if err := app.data.SearchAndLoadRelations(entries, data.Query{}); err != nil {
app.logger.Printf("error loading relations: %v", err)
return echo.NewHTTPError(http.StatusInternalServerError, "error loading relations")
Expand Down
2 changes: 1 addition & 1 deletion cmd/dictpress/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ func doSearch(c echo.Context) (data.Query, *results, error) {

// Search and compose results.
out = &results{
Entries: data.Entries{},
Entries: []data.Entry{},
}
res, total, err := app.data.Search(query)
if err != nil {
Expand Down
26 changes: 13 additions & 13 deletions internal/data/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,12 @@ func New(q *Queries, langs LangMap) *Data {
// Search returns the entries filtered and paginated by a
// given Query along with the total number of matches in the
// database.
func (d *Data) Search(q Query) (Entries, int, error) {
func (d *Data) Search(q Query) ([]Entry, int, error) {
// Is there a Tokenizer?
var (
tsVectorLang = ""
tsVectorQuery string
out Entries
out []Entry
)

lang, ok := d.Langs[q.FromLang]
Expand Down Expand Up @@ -153,29 +153,29 @@ func (d *Data) Search(q Query) (Entries, int, error) {
q.Offset, q.Limit,
); err != nil {
if err == sql.ErrNoRows {
return Entries{}, 0, nil
return []Entry{}, 0, nil
}

return nil, 0, err
}

if len(out) == 0 {
return Entries{}, 0, nil
return []Entry{}, 0, nil
}

// Replace nulls with [].
for i := range out {
if out[i].Relations == nil {
out[i].Relations = Entries{}
out[i].Relations = []Entry{}
}
}

return out, out[0].Total, nil
}

// GetPendingEntries fetches entries based on the given condition.
func (d *Data) GetPendingEntries(lang string, tags pq.StringArray, offset, limit int) (Entries, int, error) {
var out Entries
func (d *Data) GetPendingEntries(lang string, tags pq.StringArray, offset, limit int) ([]Entry, int, error) {
var out []Entry

if err := d.queries.GetPendingEntries.Select(&out, lang, tags, offset, limit); err != nil || len(out) == 0 {
return nil, 0, err
Expand All @@ -184,7 +184,7 @@ func (d *Data) GetPendingEntries(lang string, tags pq.StringArray, offset, limit
// Replace nulls with [].
for i := range out {
if out[i].Relations == nil {
out[i].Relations = Entries{}
out[i].Relations = []Entry{}
}
}

Expand Down Expand Up @@ -246,8 +246,8 @@ func (d *Data) GetEntry(id int) (Entry, error) {
}

// GetParentEntries returns the parent entries of an entry by its id.
func (d *Data) GetParentEntries(id int) (Entries, error) {
var out Entries
func (d *Data) GetParentEntries(id int) ([]Entry, error) {
var out []Entry
if err := d.queries.GetParentRelations.Select(&out, id); err != nil {
return out, err
}
Expand Down Expand Up @@ -414,7 +414,7 @@ func (d *Data) insertRelation(fromID, toID int, r Relation, stmt *sqlx.Stmt) (in
}

// SearchAndLoadRelations loads related entries into the given Entries.
func (d *Data) SearchAndLoadRelations(e Entries, q Query) error {
func (d *Data) SearchAndLoadRelations(e []Entry, q Query) error {
var (
IDs = make([]int64, len(e))

Expand All @@ -425,11 +425,11 @@ func (d *Data) SearchAndLoadRelations(e Entries, q Query) error {

for i := 0; i < len(e); i++ {
IDs[i] = int64(e[i].ID)
e[i].Relations = make(Entries, 0)
e[i].Relations = make([]Entry, 0)
idMap[e[i].ID] = i
}

var relEntries Entries
var relEntries []Entry
if err := d.queries.SearchRelations.Select(&relEntries,
q.ToLang,
pq.StringArray(q.Types),
Expand Down
9 changes: 3 additions & 6 deletions internal/data/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type Entry struct {
Phones pq.StringArray `json:"phones" db:"phones"`
Notes string `json:"notes" db:"notes"`
Status string `json:"status" db:"status"`
Relations Entries `json:"relations,omitempty" db:"relations"`
Relations []Entry `json:"relations,omitempty" db:"relations"`
Total int `json:"-" db:"total"`
CreatedAt null.Time `json:"created_at" db:"created_at"`
UpdatedAt null.Time `json:"updated_at" db:"updated_at"`
Expand All @@ -35,8 +35,8 @@ type Entry struct {
RelationUpdatedAt null.Time `json:"-" db:"relation_updated_at"`

// RelationEntry encompasses an Entry with added fields that
// describes its relationship to other Entries. This is only populated in
// Entries in the Relations list.
// describes its relationship to other []Entry. This is only populated in
// []Entry in the Relations list.
Relation *Relation `json:"relation,omitempty"`
}

Expand All @@ -52,9 +52,6 @@ type Relation struct {
UpdatedAt null.Time `json:"updated_at"`
}

// Entries represents a slice of Entry.
type Entries []Entry

// GlossaryWord to read glosary content from db.
type GlossaryWord struct {
ID int `json:"id" db:"id"`
Expand Down

0 comments on commit ac8313c

Please sign in to comment.