fix
This commit is contained in:
parent
880a32a9c8
commit
a45b1f3603
16
models/album.go
Normal file
16
models/album.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Album model
|
||||||
|
type Album struct {
|
||||||
|
ID string `xorm:"id"`
|
||||||
|
UID string `xorm:"uid"`
|
||||||
|
Name string `xorm:"name"`
|
||||||
|
Public bool `xorm:"public default false"`
|
||||||
|
Ctime time.Time `xorm:"ctime created"`
|
||||||
|
Mtime time.Time `xorm:"mtime updated"`
|
||||||
|
Photos []*Photo `xorm:"-"`
|
||||||
|
}
|
13
models/photo.go
Normal file
13
models/photo.go
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
// Photo model
|
||||||
|
type Photo struct {
|
||||||
|
ID string `xorm:"id"`
|
||||||
|
Album string `xorm:"album"`
|
||||||
|
Name string `xorm:"name"`
|
||||||
|
Thumbnail string `xorm:"thumbnail"`
|
||||||
|
Ctime time.Time `xorm:"ctime"`
|
||||||
|
Mtime time.Time `xorm:"mtime"`
|
||||||
|
}
|
85
modules/apimsg/apimsg.go
Normal file
85
modules/apimsg/apimsg.go
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
package apimsg
|
||||||
|
|
||||||
|
// ResObject error object
|
||||||
|
type ResObject struct {
|
||||||
|
Status int
|
||||||
|
Obj interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
var objs map[string]*ResObject
|
||||||
|
|
||||||
|
// InitError initial error objs
|
||||||
|
func InitError() {
|
||||||
|
objs = make(map[string]*ResObject)
|
||||||
|
|
||||||
|
objs["InternalError"] = &ResObject{
|
||||||
|
Status: 500,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "Server Internal Error",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["DataFormat"] = &ResObject{
|
||||||
|
Status: 400,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "Data Format Error",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["Forbidden"] = &ResObject{
|
||||||
|
Status: 403,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "Forbidden",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["Success"] = &ResObject{
|
||||||
|
Status: 200,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "Success",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["LoginFirst"] = &ResObject{
|
||||||
|
Status: 401,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "please login first",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["TokenTimeout"] = &ResObject{
|
||||||
|
Status: 401,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "token invaildated",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
objs["NotFound"] = &ResObject{
|
||||||
|
Status: 404,
|
||||||
|
Obj: map[string]string{
|
||||||
|
"message": "Not Found",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRes get error obj
|
||||||
|
func GetRes(name string, msg interface{}) *ResObject {
|
||||||
|
if objs == nil {
|
||||||
|
InitError()
|
||||||
|
}
|
||||||
|
|
||||||
|
obj, ok := objs[name]
|
||||||
|
if !ok {
|
||||||
|
obj = objs["InternalError"]
|
||||||
|
}
|
||||||
|
|
||||||
|
resobj := &ResObject{}
|
||||||
|
resobj.Status = obj.Status
|
||||||
|
switch msg.(type) {
|
||||||
|
case string:
|
||||||
|
tmp := make(map[string]string)
|
||||||
|
tmp["message"] = msg.(string)
|
||||||
|
resobj.Obj = tmp
|
||||||
|
break
|
||||||
|
case map[string]interface{}:
|
||||||
|
resobj.Obj = msg
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
resobj.Obj = obj.Obj
|
||||||
|
}
|
||||||
|
return resobj
|
||||||
|
}
|
35
modules/context/context.go
Normal file
35
modules/context/context.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package context
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.trj.tw/golang/go-gallery/modules/apimsg"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Context custom patch context
|
||||||
|
type Context struct {
|
||||||
|
*gin.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
type CustomMiddle func(*Context)
|
||||||
|
|
||||||
|
func PatchContext(handler CustomMiddle) gin.HandlerFunc {
|
||||||
|
return func(c *gin.Context) {
|
||||||
|
ctx := &Context{
|
||||||
|
Context: c,
|
||||||
|
}
|
||||||
|
handler(ctx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NotFound response
|
||||||
|
func (c *Context) NotFound(msg string) {
|
||||||
|
obj := apimsg.GetRes("NotFound", msg)
|
||||||
|
// c.JSON(obj.Status, obj.Obj)
|
||||||
|
c.AbortWithStatusJSON(obj.Status, obj.Obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Success response
|
||||||
|
func (c *Context) Success(msg interface{}) {
|
||||||
|
obj := apimsg.GetRes("Success", msg)
|
||||||
|
c.JSON(obj.Status, obj.Obj)
|
||||||
|
}
|
23
routers/account/account.go
Normal file
23
routers/account/account.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package account
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.trj.tw/golang/go-gallery/modules/context"
|
||||||
|
)
|
||||||
|
|
||||||
|
// UserLogin route
|
||||||
|
func UserLogin(c *context.Context) {
|
||||||
|
loginArg := struct {
|
||||||
|
Account string `form:"account" json:"account" binding:"required"`
|
||||||
|
Password string `form:"password" json:"password" binding:"required"`
|
||||||
|
}{
|
||||||
|
Account: "",
|
||||||
|
Password: "",
|
||||||
|
}
|
||||||
|
err := c.ShouldBind(&loginArg)
|
||||||
|
if err != nil {
|
||||||
|
c.NotFound("body not found")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Success("api success")
|
||||||
|
}
|
@ -1,15 +1,17 @@
|
|||||||
package routes
|
package routes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"git.trj.tw/golang/go-gallery/models"
|
"git.trj.tw/golang/go-gallery/models"
|
||||||
|
"git.trj.tw/golang/go-gallery/modules/context"
|
||||||
|
"git.trj.tw/golang/go-gallery/routers/account"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewServ - get new service
|
// NewServ - get new service
|
||||||
func NewServ() *gin.Engine {
|
func NewServ() *gin.Engine {
|
||||||
r := gin.Default()
|
r := gin.New()
|
||||||
|
r.Use(gin.Logger())
|
||||||
|
r.Use(gin.Recovery())
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,7 +25,6 @@ func SetDefaultRoutes(r *gin.Engine) {
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fmt.Println(accs)
|
|
||||||
c.JSON(200, accs)
|
c.JSON(200, accs)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -35,11 +36,9 @@ func SetDefaultRoutes(r *gin.Engine) {
|
|||||||
"message": "Success",
|
"message": "Success",
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
api.GET("s/", func(c *gin.Context) {
|
}
|
||||||
c.JSON(200, gin.H{
|
accountAPI := api.Group("/account")
|
||||||
"status": 200,
|
{
|
||||||
"message": "api sssss",
|
accountAPI.POST("/login", context.PatchContext(account.UserLogin))
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user