3
0

upd(crm): return module info from pages

This commit is contained in:
Tit Petric
2018-10-16 11:56:11 +02:00
parent e926b6a05a
commit bbed522266
2 changed files with 46 additions and 14 deletions

View File

@@ -37,30 +37,60 @@ func (r *page) With(ctx context.Context, db *factory.DB) PageRepository {
}
func (r *page) FindByID(id uint64) (*types.Page, error) {
mod := &types.Page{}
return mod, r.db().Get(mod, "SELECT * FROM crm_page WHERE id=?", id)
page := &types.Page{}
if err := r.db().Get(page, "SELECT * FROM crm_page WHERE id=?", id); err != nil {
return page, err
}
if err := r.fillModule(page); err != nil {
return page, err
}
return page, nil
}
func (r *page) FindByModuleID(id uint64) (*types.Page, error) {
mod := &types.Page{}
return mod, r.db().Get(mod, "SELECT * FROM crm_page WHERE module_id=?", id)
page := &types.Page{}
if err := r.db().Get(page, "SELECT * FROM crm_page WHERE module_id=?", id); err != nil {
return page, err
}
if err := r.fillModule(page); err != nil {
return page, err
}
return page, nil
}
func (r *page) Find() ([]*types.Page, error) {
mod := make([]*types.Page, 0)
return mod, r.db().Select(&mod, "SELECT * FROM crm_page ORDER BY id ASC")
pages := make([]*types.Page, 0)
if err := r.db().Select(&pages, "SELECT * FROM crm_page ORDER BY id ASC"); err != nil {
return pages, err
}
for _, page := range pages {
if err := r.fillModule(page); err != nil {
return pages, err
}
}
return pages, nil
}
func (r *page) Create(mod *types.Page) (*types.Page, error) {
mod.ID = factory.Sonyflake.NextID()
return mod, r.db().Insert("crm_page", mod)
func (r *page) Create(page *types.Page) (*types.Page, error) {
page.ID = factory.Sonyflake.NextID()
return page, r.db().Insert("crm_page", page)
}
func (r *page) Update(mod *types.Page) (*types.Page, error) {
return mod, r.db().Replace("crm_page", mod)
func (r *page) Update(page *types.Page) (*types.Page, error) {
return page, r.db().Replace("crm_page", page)
}
func (r *page) DeleteByID(id uint64) error {
_, err := r.db().Exec("DELETE FROM crm_page WHERE id=?", id)
return err
}
func (r *page) fillModule(page *types.Page) error {
if page.ModuleID > 0 {
api := Module(r.Context(), r.db())
module, err := api.FindByID(page.ModuleID)
page.Module = module
return err
}
return nil
}

View File

@@ -60,9 +60,11 @@ type (
// Page - page structure
Page struct {
ID uint64 `json:"id" db:"id"`
SelfID uint64 `json:"selfID" db:"self_id"`
ModuleID uint64 `json:"moduleID" db:"module_id"`
ID uint64 `json:"id" db:"id"`
SelfID uint64 `json:"selfID" db:"self_id"`
ModuleID uint64 `json:"moduleID" db:"module_id"`
Module *Module `json:"module,omitempty" db:"-"`
Title string `json:"title" db:"title"`
Description string `json:"description" db:"description"`