mirror of
https://github.com/ordinary-dev/phoenix
synced 2024-09-20 03:40:29 +05:00
Move code for working with db into functions that process requests
This commit is contained in:
parent
2029b8ec19
commit
81b7e6f896
|
@ -1,53 +1,7 @@
|
||||||
package backend
|
package backend
|
||||||
|
|
||||||
import (
|
|
||||||
"gorm.io/gorm"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Group struct {
|
type Group struct {
|
||||||
ID uint64 `gorm:"primaryKey"`
|
ID uint64 `gorm:"primaryKey"`
|
||||||
Name string `gorm:"unique,notNull"`
|
Name string `gorm:"unique,notNull"`
|
||||||
Links []Link `gorm:"constraint:OnDelete:CASCADE;"`
|
Links []Link `gorm:"constraint:OnDelete:CASCADE;"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetGroups(db *gorm.DB) ([]Group, error) {
|
|
||||||
var groups []Group
|
|
||||||
result := db.Model(&Group{}).Preload("Links").Find(&groups)
|
|
||||||
if result.Error != nil {
|
|
||||||
return nil, result.Error
|
|
||||||
}
|
|
||||||
return groups, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func CreateGroup(db *gorm.DB, groupName string) (Group, error) {
|
|
||||||
group := Group{
|
|
||||||
Name: groupName,
|
|
||||||
}
|
|
||||||
result := db.Create(&group)
|
|
||||||
if result.Error != nil {
|
|
||||||
return Group{}, result.Error
|
|
||||||
}
|
|
||||||
|
|
||||||
return group, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateGroup(db *gorm.DB, id uint64, groupName string) (Group, error) {
|
|
||||||
var group Group
|
|
||||||
db.First(&group, id)
|
|
||||||
|
|
||||||
group.Name = groupName
|
|
||||||
result := db.Save(&group)
|
|
||||||
if result.Error != nil {
|
|
||||||
return Group{}, result.Error
|
|
||||||
}
|
|
||||||
|
|
||||||
return group, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteGroup(db *gorm.DB, id uint64) error {
|
|
||||||
result := db.Delete(&Group{}, id)
|
|
||||||
if result.Error != nil {
|
|
||||||
return result.Error
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,48 +1,8 @@
|
||||||
package backend
|
package backend
|
||||||
|
|
||||||
import (
|
|
||||||
"gorm.io/gorm"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Link struct {
|
type Link struct {
|
||||||
ID uint64 `gorm:"primaryKey"`
|
ID uint64 `gorm:"primaryKey"`
|
||||||
Name string `gorm:"notNull"`
|
Name string `gorm:"notNull"`
|
||||||
Href string `gorm:"notNull"`
|
Href string `gorm:"notNull"`
|
||||||
GroupID uint64 `gorm:"notNull"`
|
GroupID uint64 `gorm:"notNull"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateLink(db *gorm.DB, linkName string, href string, groupID uint64) (Link, error) {
|
|
||||||
link := Link{
|
|
||||||
Name: linkName,
|
|
||||||
Href: href,
|
|
||||||
GroupID: groupID,
|
|
||||||
}
|
|
||||||
result := db.Create(&link)
|
|
||||||
if result.Error != nil {
|
|
||||||
return Link{}, result.Error
|
|
||||||
}
|
|
||||||
|
|
||||||
return link, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func UpdateLink(db *gorm.DB, id uint64, linkName string, href string) (Link, error) {
|
|
||||||
var link Link
|
|
||||||
db.First(&link, id)
|
|
||||||
|
|
||||||
link.Name = linkName
|
|
||||||
link.Href = href
|
|
||||||
result := db.Save(&link)
|
|
||||||
if result.Error != nil {
|
|
||||||
return Link{}, result.Error
|
|
||||||
}
|
|
||||||
|
|
||||||
return link, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteLink(db *gorm.DB, id uint64) error {
|
|
||||||
result := db.Delete(&Link{}, id)
|
|
||||||
if result.Error != nil {
|
|
||||||
return result.Error
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -14,9 +14,11 @@ func CreateGroup(c *gin.Context, db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save new group to the database.
|
// Save new group to the database.
|
||||||
groupName := c.PostForm("groupName")
|
group := backend.Group{
|
||||||
if _, err := backend.CreateGroup(db, groupName); err != nil {
|
Name: c.PostForm("groupName"),
|
||||||
ShowError(c, err)
|
}
|
||||||
|
if result := db.Create(&group); result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,9 +36,16 @@ func UpdateGroup(c *gin.Context, db *gorm.DB) {
|
||||||
ShowError(c, err)
|
ShowError(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
groupName := c.PostForm("groupName")
|
|
||||||
if _, err := backend.UpdateGroup(db, id, groupName); err != nil {
|
var group backend.Group
|
||||||
ShowError(c, err)
|
if result := db.First(&group, id); result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
group.Name = c.PostForm("groupName")
|
||||||
|
if result := db.Save(&group); result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,8 +64,8 @@ func DeleteGroup(c *gin.Context, db *gorm.DB) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = backend.DeleteGroup(db, id); err != nil {
|
if result := db.Delete(&backend.Group{}, id); result.Error != nil {
|
||||||
ShowError(c, err)
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,14 @@ func ShowMainPage(c *gin.Context, db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get a list of groups with links
|
// Get a list of groups with links
|
||||||
groups, err := backend.GetGroups(db)
|
var groups []backend.Group
|
||||||
if err != nil {
|
result := db.
|
||||||
ShowError(c, err)
|
Model(&backend.Group{}).
|
||||||
|
Preload("Links").
|
||||||
|
Find(&groups)
|
||||||
|
|
||||||
|
if result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,16 +13,19 @@ func CreateLink(c *gin.Context, db *gorm.DB) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
linkName := c.PostForm("linkName")
|
|
||||||
href := c.PostForm("href")
|
|
||||||
groupID, err := strconv.ParseUint(c.PostForm("groupID"), 10, 32)
|
groupID, err := strconv.ParseUint(c.PostForm("groupID"), 10, 32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ShowError(c, err)
|
ShowError(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err = backend.CreateLink(db, linkName, href, groupID); err != nil {
|
link := backend.Link{
|
||||||
ShowError(c, err)
|
Name: c.PostForm("linkName"),
|
||||||
|
Href: c.PostForm("href"),
|
||||||
|
GroupID: groupID,
|
||||||
|
}
|
||||||
|
if result := db.Create(&link); result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,14 +43,20 @@ func UpdateLink(c *gin.Context, db *gorm.DB) {
|
||||||
ShowError(c, err)
|
ShowError(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
linkName := c.PostForm("linkName")
|
|
||||||
href := c.PostForm("href")
|
|
||||||
|
|
||||||
if _, err = backend.UpdateLink(db, id, linkName, href); err != nil {
|
var link backend.Link
|
||||||
|
if result := db.First(&link, id); result.Error != nil {
|
||||||
ShowError(c, err)
|
ShowError(c, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
link.Name = c.PostForm("linkName")
|
||||||
|
link.Href = c.PostForm("href")
|
||||||
|
if result := db.Save(&link); result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Redirect to settings.
|
// Redirect to settings.
|
||||||
c.Redirect(http.StatusFound, "/settings")
|
c.Redirect(http.StatusFound, "/settings")
|
||||||
}
|
}
|
||||||
|
@ -63,8 +72,8 @@ func DeleteLink(c *gin.Context, db *gorm.DB) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = backend.DeleteLink(db, id); err != nil {
|
if result := db.Delete(&backend.Link{}, id); result.Error != nil {
|
||||||
ShowError(c, err)
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,14 @@ func ShowSettings(c *gin.Context, db *gorm.DB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get a list of groups with links
|
// Get a list of groups with links
|
||||||
groups, err := backend.GetGroups(db)
|
var groups []backend.Group
|
||||||
if err != nil {
|
result := db.
|
||||||
ShowError(c, err)
|
Model(&backend.Group{}).
|
||||||
|
Preload("Links").
|
||||||
|
Find(&groups)
|
||||||
|
|
||||||
|
if result.Error != nil {
|
||||||
|
ShowError(c, result.Error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue