3
0
corteza/crm/rest/module.go
2018-10-15 14:46:35 +00:00

81 lines
2.1 KiB
Go

package rest
import (
"context"
"github.com/titpetric/factory/resputil"
"github.com/crusttech/crust/crm/rest/request"
"github.com/crusttech/crust/crm/service"
"github.com/crusttech/crust/crm/types"
)
type (
Module struct {
module service.ModuleService
content service.ContentService
}
)
func (Module) New(module service.ModuleService, content service.ContentService) *Module {
return &Module{module, content}
}
func (s *Module) List(ctx context.Context, r *request.ModuleList) (interface{}, error) {
return s.module.With(ctx).Find()
}
func (s *Module) Read(ctx context.Context, r *request.ModuleRead) (interface{}, error) {
return s.module.With(ctx).FindByID(r.ID)
}
func (s *Module) Delete(ctx context.Context, r *request.ModuleDelete) (interface{}, error) {
return resputil.OK(), s.module.With(ctx).DeleteByID(r.ID)
}
func (s *Module) Create(ctx context.Context, r *request.ModuleCreate) (interface{}, error) {
item := &types.Module{
Name: r.Name,
Fields: r.Fields,
}
return s.module.With(ctx).Create(item)
}
func (s *Module) Edit(ctx context.Context, r *request.ModuleEdit) (interface{}, error) {
item := &types.Module{
ID: r.ID,
Name: r.Name,
Fields: r.Fields,
}
return s.module.With(ctx).Update(item)
}
func (s *Module) ContentList(ctx context.Context, r *request.ModuleContentList) (interface{}, error) {
return s.content.With(ctx).Find()
}
func (s *Module) ContentRead(ctx context.Context, r *request.ModuleContentRead) (interface{}, error) {
return s.content.With(ctx).FindByID(r.ID)
}
func (s *Module) ContentCreate(ctx context.Context, r *request.ModuleContentCreate) (interface{}, error) {
item := &types.Content{
ModuleID: r.ModuleID,
Fields: r.Fields,
}
return s.content.With(ctx).Create(item)
}
func (s *Module) ContentEdit(ctx context.Context, r *request.ModuleContentEdit) (interface{}, error) {
item := &types.Content{
ID: r.ID,
ModuleID: r.ModuleID,
Fields: r.Fields,
}
return s.content.With(ctx).Update(item)
}
func (s *Module) ContentDelete(ctx context.Context, r *request.ModuleContentDelete) (interface{}, error) {
return resputil.OK(), s.content.With(ctx).DeleteByID(r.ID)
}