upd(crm): return module info from pages
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
Reference in New Issue
Block a user