Browse Source

Return stats with public houses

T280
tags/v1.0
Matt Baer 8 years ago
parent
commit
1c4a462301
2 changed files with 21 additions and 9 deletions
  1. +13
    -5
      construction.go
  2. +8
    -4
      models.go

+ 13
- 5
construction.go View File

@@ -199,7 +199,7 @@ func getHouseHTML(app *app, houseID string) (string, error) {
}

func getPublicHousesData(app *app, w http.ResponseWriter, r *http.Request) error {
houses, err := getPublicHouses(app)
houses, err := getPublicHouses(app, true)
if err != nil {
return err
}
@@ -307,7 +307,7 @@ func viewHouseStats(app *app, w http.ResponseWriter, r *http.Request) error {
}

func viewHouses(app *app, w http.ResponseWriter, r *http.Request) error {
houses, err := getPublicHouses(app)
houses, err := getPublicHouses(app, false)
if err != nil {
fmt.Printf("Couln't load houses: %v", err)
return err
@@ -318,9 +318,13 @@ func viewHouses(app *app, w http.ResponseWriter, r *http.Request) error {
return nil
}

func getPublicHouses(app *app) (*[]PublicHouse, error) {
func getPublicHouses(app *app, deepData bool) (*[]PublicHouse, error) {
houses := []PublicHouse{}
rows, err := app.db.Query(fmt.Sprintf("SELECT house_id, title, thumb_url FROM publichouses WHERE approved = 1 ORDER BY updated DESC LIMIT %d", app.cfg.BrowseItems))
q := fmt.Sprintf("SELECT house_id, title, thumb_url FROM publichouses WHERE approved = 1 ORDER BY updated DESC LIMIT %d", app.cfg.BrowseItems)
if deepData {
q = fmt.Sprintf("SELECT house_id, title, thumb_url, created, updated, view_count FROM publichouses INNER JOIN houses ON house_id = id WHERE approved = 1 ORDER BY updated DESC LIMIT %d", app.cfg.BrowseItems)
}
rows, err := app.db.Query(q)
switch {
case err == sql.ErrNoRows:
return nil, impart.HTTPError{http.StatusNotFound, "Return to sender. Address unknown."}
@@ -332,7 +336,11 @@ func getPublicHouses(app *app) (*[]PublicHouse, error) {

house := &PublicHouse{}
for rows.Next() {
err = rows.Scan(&house.ID, &house.Title, &house.ThumbURL)
if deepData {
err = rows.Scan(&house.ID, &house.Title, &house.ThumbURL, &house.Created, &house.Updated, &house.Views)
} else {
err = rows.Scan(&house.ID, &house.Title, &house.ThumbURL)
}
houses = append(houses, *house)
}



+ 8
- 4
models.go View File

@@ -2,14 +2,18 @@ package htmlhouse

import (
"fmt"
"time"
)

type (
PublicHouse struct {
ID string `json:"id"`
Title string `json:"title"`
URL string `json:"url"`
ThumbURL string `json:"thumb_url"`
ID string `json:"id"`
Title string `json:"title"`
URL string `json:"url"`
ThumbURL string `json:"thumb_url"`
Created time.Time `json:"created"`
Updated time.Time `json:"updated"`
Views int `json:"views"`
}

HouseStats struct {


Loading…
Cancel
Save