go-common/app/job/main/aegis/service/handler_resource.go

77 lines
1.9 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package service
import (
"context"
"encoding/json"
"errors"
"fmt"
"go-common/app/job/main/aegis/model"
)
//ERROR
var (
ErrMangaNoIndex = errors.New("漫画无图")
)
type baseResourceAddHandler struct {
*Service
}
type mangaResourceAddHandler struct {
baseResourceAddHandler
}
type baseResourceUpdateHandler struct {
*Service
}
type baseResourceCancelHandler struct {
*Service
}
func (h baseResourceAddHandler) CheckMessage(msg json.RawMessage) (addObj interface{}, err error) {
return h.checkRscAddMsg(msg)
}
func (h baseResourceAddHandler) HandleMessage(c context.Context, addObj interface{}) error {
return h.writeRscAdd(c, addObj.(*model.AddOption))
}
//漫画的,校验是否有图
func (h mangaResourceAddHandler) CheckMessage(msg json.RawMessage) (addObj interface{}, err error) {
if addObj, err = h.baseResourceAddHandler.CheckMessage(msg); err != nil {
return
}
addopt := addObj.(*model.AddOption)
metas := make(map[string]interface{})
if err = json.Unmarshal([]byte(addopt.MetaData), &metas); err != nil {
return
}
if index, ok := metas["index"]; !ok || len(fmt.Sprint(index)) == 0 {
return nil, ErrMangaNoIndex
}
return
}
func (h mangaResourceAddHandler) HandleMessage(c context.Context, addObj interface{}) error {
return h.baseResourceAddHandler.HandleMessage(c, addObj.(*model.AddOption))
}
func (h baseResourceUpdateHandler) CheckMessage(msg json.RawMessage) (updateObj interface{}, err error) {
return h.checkRscUpdateMsg(msg)
}
func (h baseResourceUpdateHandler) HandleMessage(c context.Context, updateObj interface{}) error {
return h.writeRscUpdate(c, updateObj.(*model.UpdateOption))
}
func (h baseResourceCancelHandler) CheckMessage(msg json.RawMessage) (cancelObj interface{}, err error) {
return h.checkRscCancelMsg(msg)
}
func (h baseResourceCancelHandler) HandleMessage(c context.Context, cancelObj interface{}) error {
return h.writeRscCancel(c, cancelObj.(*model.CancelOption))
}