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
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Group struct {
|
||||
ID uint64 `gorm:"primaryKey"`
|
||||
Name string `gorm:"unique,notNull"`
|
||||
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
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Link struct {
|
||||
ID uint64 `gorm:"primaryKey"`
|
||||
Name string `gorm:"notNull"`
|
||||
Href string `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.
|
||||
groupName := c.PostForm("groupName")
|
||||
if _, err := backend.CreateGroup(db, groupName); err != nil {
|
||||
ShowError(c, err)
|
||||
group := backend.Group{
|
||||
Name: c.PostForm("groupName"),
|
||||
}
|
||||
if result := db.Create(&group); result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -34,9 +36,16 @@ func UpdateGroup(c *gin.Context, db *gorm.DB) {
|
|||
ShowError(c, err)
|
||||
return
|
||||
}
|
||||
groupName := c.PostForm("groupName")
|
||||
if _, err := backend.UpdateGroup(db, id, groupName); err != nil {
|
||||
ShowError(c, err)
|
||||
|
||||
var group backend.Group
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -55,8 +64,8 @@ func DeleteGroup(c *gin.Context, db *gorm.DB) {
|
|||
return
|
||||
}
|
||||
|
||||
if err = backend.DeleteGroup(db, id); err != nil {
|
||||
ShowError(c, err)
|
||||
if result := db.Delete(&backend.Group{}, id); result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -13,9 +13,14 @@ func ShowMainPage(c *gin.Context, db *gorm.DB) {
|
|||
}
|
||||
|
||||
// Get a list of groups with links
|
||||
groups, err := backend.GetGroups(db)
|
||||
if err != nil {
|
||||
ShowError(c, err)
|
||||
var groups []backend.Group
|
||||
result := db.
|
||||
Model(&backend.Group{}).
|
||||
Preload("Links").
|
||||
Find(&groups)
|
||||
|
||||
if result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -13,16 +13,19 @@ func CreateLink(c *gin.Context, db *gorm.DB) {
|
|||
return
|
||||
}
|
||||
|
||||
linkName := c.PostForm("linkName")
|
||||
href := c.PostForm("href")
|
||||
groupID, err := strconv.ParseUint(c.PostForm("groupID"), 10, 32)
|
||||
if err != nil {
|
||||
ShowError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = backend.CreateLink(db, linkName, href, groupID); err != nil {
|
||||
ShowError(c, err)
|
||||
link := backend.Link{
|
||||
Name: c.PostForm("linkName"),
|
||||
Href: c.PostForm("href"),
|
||||
GroupID: groupID,
|
||||
}
|
||||
if result := db.Create(&link); result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -40,14 +43,20 @@ func UpdateLink(c *gin.Context, db *gorm.DB) {
|
|||
ShowError(c, err)
|
||||
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)
|
||||
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.
|
||||
c.Redirect(http.StatusFound, "/settings")
|
||||
}
|
||||
|
@ -63,8 +72,8 @@ func DeleteLink(c *gin.Context, db *gorm.DB) {
|
|||
return
|
||||
}
|
||||
|
||||
if err = backend.DeleteLink(db, id); err != nil {
|
||||
ShowError(c, err)
|
||||
if result := db.Delete(&backend.Link{}, id); result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -13,9 +13,14 @@ func ShowSettings(c *gin.Context, db *gorm.DB) {
|
|||
}
|
||||
|
||||
// Get a list of groups with links
|
||||
groups, err := backend.GetGroups(db)
|
||||
if err != nil {
|
||||
ShowError(c, err)
|
||||
var groups []backend.Group
|
||||
result := db.
|
||||
Model(&backend.Group{}).
|
||||
Preload("Links").
|
||||
Find(&groups)
|
||||
|
||||
if result.Error != nil {
|
||||
ShowError(c, result.Error)
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue