This commit is contained in:
Jay 2018-04-30 10:13:01 +08:00
parent 1b8416dba3
commit e33c51727a
4 changed files with 106 additions and 1 deletions

View File

@ -1,6 +1,10 @@
package models
import "time"
import (
"time"
"git.trj.tw/golang/utils/dbtool"
)
// Photo model
type Photo struct {
@ -11,3 +15,38 @@ type Photo struct {
Ctime time.Time `sql:"ctime" cc:"ctime"`
Mtime time.Time `sql:"mtime" cc:"mtime"`
}
// GetPhotos -
func GetPhotos(album string) (photo []Photo, err error) {
rows, err := x.Query(`select "id", "album", "name", "thumbnail", "ctime", "mtime" from "storage"."photo" where "album" = $1`, album)
if err != nil {
return nil, err
}
err = dbtool.ScanToStructAll(rows, &photo)
if err != nil {
return nil, err
}
return
}
// GetPhoto -
func GetPhoto(id string) (photo *Photo, err error) {
rows, err := x.Query(`select "id", "album", "name", "thumbnail", "ctime", "mtime" from "storage"."photo" where "id" = $1`, id)
if err != nil {
return nil, err
}
photo = &Photo{}
ok, err := dbtool.ScanToStruct(rows, photo)
if err != nil {
return nil, err
}
if !ok {
return nil, nil
}
return
}

View File

@ -0,0 +1,37 @@
package middleware
import (
"git.trj.tw/golang/go-gallery/models"
"git.trj.tw/golang/go-gallery/modules/context"
"git.trj.tw/golang/go-gallery/modules/utils"
)
// GetAlbumToNext -
func GetAlbumToNext(c *context.Context) {
id := c.Param("album")
if len(id) == 0 {
c.DataFormat("no album id")
return
}
token, ok := c.Get("token")
if !ok {
c.CustomRes("Foridden", nil)
return
}
album, err := models.GetAlbum(id, token.(map[string]interface{})["user"].(map[string]interface{})["id"].(string))
if err != nil {
c.ServerError(nil)
return
}
if album == nil {
c.NotFound("album not found")
return
}
albumMap := utils.ToMap(album)
c.Set("album", albumMap)
c.Next()
}

25
routers/album/photo.go Normal file
View File

@ -0,0 +1,25 @@
package album
import (
"git.trj.tw/golang/go-gallery/models"
"git.trj.tw/golang/go-gallery/modules/context"
)
// GetAllAlbumPhotos -
func GetAllAlbumPhotos(c *context.Context) {
}
// GetPhoto -
func GetPhoto(c *context.Context) {
album, ok := c.Get("album")
if !ok {
c.NotFound("album not found")
return
}
_, err := models.GetPhoto(album.(map[string]interface{})["id"].(string))
if err != nil {
c.ServerError(nil)
return
}
}

View File

@ -55,4 +55,8 @@ func SetDefaultRoutes(r *gin.Engine) {
albumAPI.PUT("/:id", context.PatchContext(album.UpdateAlbum))
albumAPI.DELETE("/:id", context.PatchContext(album.DeleteAlbum))
}
photoAPI := albumAPI.Group("/:album/photo", context.PatchContext(middleware.VerifyToken), context.PatchContext(middleware.GetAlbumToNext))
{
photoAPI.GET("/", context.PatchContext(album.GetPhoto))
}
}