2016-04-03 20:31:41 +00:00
|
|
|
package v1
|
|
|
|
|
|
|
|
import (
|
|
|
|
"database/sql"
|
|
|
|
|
2016-04-19 14:07:27 +00:00
|
|
|
"git.zxq.co/ripple/rippleapi/common"
|
2016-04-03 20:31:41 +00:00
|
|
|
)
|
|
|
|
|
2016-04-16 16:05:24 +00:00
|
|
|
type singleBadge struct {
|
2016-04-03 20:31:41 +00:00
|
|
|
ID int `json:"id"`
|
|
|
|
Name string `json:"name"`
|
|
|
|
Icon string `json:"icon"`
|
|
|
|
}
|
|
|
|
|
2016-04-16 16:05:24 +00:00
|
|
|
type multiBadgeData struct {
|
|
|
|
common.ResponseBase
|
|
|
|
Badges []singleBadge `json:"badges"`
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// BadgesGET retrieves all the badges on this ripple instance.
|
2016-04-16 16:05:24 +00:00
|
|
|
func BadgesGET(md common.MethodData) common.CodeMessager {
|
2016-05-14 19:02:05 +00:00
|
|
|
var (
|
|
|
|
r multiBadgeData
|
|
|
|
rows *sql.Rows
|
|
|
|
err error
|
|
|
|
)
|
|
|
|
if md.C.Query("id") != "" {
|
|
|
|
// TODO(howl): ID validation
|
|
|
|
rows, err = md.DB.Query("SELECT id, name, icon FROM badges WHERE id = ?", md.C.Query("id"))
|
|
|
|
} else {
|
|
|
|
rows, err = md.DB.Query("SELECT id, name, icon FROM badges")
|
|
|
|
}
|
2016-04-03 20:31:41 +00:00
|
|
|
if err != nil {
|
2016-04-08 17:05:54 +00:00
|
|
|
md.Err(err)
|
2016-04-16 16:05:24 +00:00
|
|
|
return Err500
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|
|
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
2016-04-16 16:05:24 +00:00
|
|
|
nb := singleBadge{}
|
2016-04-03 20:31:41 +00:00
|
|
|
err = rows.Scan(&nb.ID, &nb.Name, &nb.Icon)
|
|
|
|
if err != nil {
|
2016-04-08 17:05:54 +00:00
|
|
|
md.Err(err)
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|
2016-04-16 16:05:24 +00:00
|
|
|
r.Badges = append(r.Badges, nb)
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|
|
|
|
if err := rows.Err(); err != nil {
|
2016-04-08 17:05:54 +00:00
|
|
|
md.Err(err)
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|
2016-04-16 16:05:24 +00:00
|
|
|
r.ResponseBase.Code = 200
|
|
|
|
return r
|
2016-04-03 20:31:41 +00:00
|
|
|
}
|