代码拉取完成,页面将自动刷新
package impl
import (
"context"
"github.com/infraboard/mcube/exception"
"github.com/infraboard/mcube/pb/request"
"gitee.com/huyouba1/keyauth-g7/apps/book"
)
func (s *service) CreateBook(ctx context.Context, req *book.CreateBookRequest) (
*book.Book, error) {
ins, err := book.NewBook(req)
if err != nil {
return nil, exception.NewBadRequest("validate create book error, %s", err)
}
if err := s.save(ctx, ins); err != nil {
return nil, err
}
return ins, nil
}
func (s *service) QueryBook(ctx context.Context, req *book.QueryBookRequest) (
*book.BookSet, error) {
query := newQueryBookRequest(req)
return s.query(ctx, query)
}
func (s *service) DescribeBook(ctx context.Context, req *book.DescribeBookRequest) (
*book.Book, error) {
return s.get(ctx, req.Id)
}
func (s *service) UpdateBook(ctx context.Context, req *book.UpdateBookRequest) (
*book.Book, error) {
ins, err := s.DescribeBook(ctx, book.NewDescribeBookRequest(req.Id))
if err != nil {
return nil, err
}
switch req.UpdateMode {
case request.UpdateMode_PUT:
ins.Update(req)
case request.UpdateMode_PATCH:
err := ins.Patch(req)
if err != nil {
return nil, err
}
}
// 校验更新后数据合法性
if err := ins.Data.Validate(); err != nil {
return nil, err
}
if err := s.update(ctx, ins); err != nil {
return nil, err
}
return ins, nil
}
func (s *service) DeleteBook(ctx context.Context, req *book.DeleteBookRequest) (
*book.Book, error) {
ins, err := s.DescribeBook(ctx, book.NewDescribeBookRequest(req.Id))
if err != nil {
return nil, err
}
if err := s.deleteBook(ctx, ins); err != nil {
return nil, err
}
return ins, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。