diff --git a/cmd/warehost-web/handler.go b/cmd/warehost-web/handler.go index c56ca20..e9bbad4 100644 --- a/cmd/warehost-web/handler.go +++ b/cmd/warehost-web/handler.go @@ -64,7 +64,7 @@ func handlerfunc(w http.ResponseWriter, r *http.Request) { logger = logger.WithField("hID", website.ID) var menus []*modul.Menu - dbconnection.Where("website = ?", website.ID).Preload("Menu").Find(&menus) + dbconnection.Where("website = ?", website.ID).Preload("Menu").Order("position").Find(&menus) var menu *modul.Menu for _, item := range menus { if item.Shorturl == "" && menu == nil { diff --git a/modul/web/api.go b/modul/web/api.go index e23192c..21c688a 100644 --- a/modul/web/api.go +++ b/modul/web/api.go @@ -44,9 +44,11 @@ func NewAPI(config *libconfig.Config, sessions *session.Manager, dbconnection *g router.POST(prefix+"/website/:websiteid/domain/:domain", InvolveWebsiteHandler(api.DomainAdd, sessions, dbconnection)) router.DELETE(prefix+"/website/:websiteid/domain/:domain", InvolveWebsiteHandler(api.DomainDelete, sessions, dbconnection)) router.GET(prefix+"/website/:websiteid/menu", InvolveWebsiteHandler(api.MenuTree, sessions, dbconnection)) + router.GET(prefix+"/website/:websiteid/menu/list", InvolveWebsiteHandler(api.MenuList, sessions, dbconnection)) router.POST(prefix+"/website/:websiteid/menu", InvolveWebsiteHandler(api.MenuAdd, sessions, dbconnection)) router.PUT(prefix+"/website/:websiteid/menu/:menuid", InvolveWebsiteHandler(api.MenuEdit, sessions, dbconnection)) router.DELETE(prefix+"/website/:websiteid/menu/:menuid", InvolveWebsiteHandler(api.MenuDelete, sessions, dbconnection)) + router.GET(prefix+"/website/:websiteid/page", InvolveWebsiteHandler(api.PageList, sessions, dbconnection)) } // Involve to get Website where loggend in user has privilegs diff --git a/modul/web/apimenu.go b/modul/web/apimenu.go index 8b0ea40..b9a9d66 100644 --- a/modul/web/apimenu.go +++ b/modul/web/apimenu.go @@ -23,6 +23,17 @@ func (api *API) MenuTree(w http.ResponseWriter, r *http.Request, _ httprouter.Pa return } +// MenuList give all menu entries of a website +func (api *API) MenuList(w http.ResponseWriter, r *http.Request, _ httprouter.Params, sess session.Session, login *libsystem.Login, websiteid int64) (returndata interface{}, returnerr *libapi.ErrorResult) { + returndata = false + logger := api.log.GetLog(r, "menulist") + var menus []*Menu + api.dbconnection.Where("website = ?", websiteid).Preload("Menu").Order("position").Find(&menus) + returndata = menus + logger.Info("done") + return +} + // MenuAdd to add a new menu entry func (api *API) MenuAdd(w http.ResponseWriter, r *http.Request, ps httprouter.Params, sess session.Session, login *libsystem.Login, websiteid int64) (returndata interface{}, returnerr *libapi.ErrorResult) { returndata = false diff --git a/modul/web/apipage.go b/modul/web/apipage.go new file mode 100644 index 0000000..7de3c6b --- /dev/null +++ b/modul/web/apipage.go @@ -0,0 +1,22 @@ +package web + +import ( + "net/http" + + "github.com/astaxie/session" + "github.com/julienschmidt/httprouter" + + libapi "dev.sum7.de/sum7/warehost/lib/api" + libsystem "dev.sum7.de/sum7/warehost/system" +) + +// PageList give all pages of a website +func (api *API) PageList(w http.ResponseWriter, r *http.Request, _ httprouter.Params, sess session.Session, login *libsystem.Login, websiteid int64) (returndata interface{}, returnerr *libapi.ErrorResult) { + returndata = false + logger := api.log.GetLog(r, "pagelist") + var pages []*Page + api.dbconnection.Where("website = ?", websiteid).Preload("Page").Find(&pages) + returndata = pages + logger.Info("done") + return +}