package Database
|
|
|
|
import (
|
|
"git.tovijaeschke.xyz/tovi/Capsule/Backend/Models"
|
|
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/clause"
|
|
)
|
|
|
|
func GetUserConversationById(id string) (Models.UserConversation, error) {
|
|
var (
|
|
message Models.UserConversation
|
|
err error
|
|
)
|
|
|
|
err = DB.First(&message, "id = ?", id).
|
|
Error
|
|
|
|
return message, err
|
|
}
|
|
|
|
func GetUserConversationsByUserId(id string, page int) ([]Models.UserConversation, error) {
|
|
var (
|
|
conversations []Models.UserConversation
|
|
offset int
|
|
err error
|
|
)
|
|
|
|
offset = page * PageSize
|
|
|
|
err = DB.Offset(offset).
|
|
Limit(PageSize).
|
|
Order("created_at DESC").
|
|
Find(&conversations, "user_id = ?", id).
|
|
Error
|
|
|
|
return conversations, err
|
|
}
|
|
|
|
func CreateUserConversation(userConversation *Models.UserConversation) error {
|
|
var err error
|
|
|
|
err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
|
|
Create(userConversation).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
func CreateUserConversations(userConversations *[]Models.UserConversation) error {
|
|
var err error
|
|
|
|
err = DB.Create(userConversations).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
func UpdateUserConversation(userConversation *Models.UserConversation) error {
|
|
var err error
|
|
|
|
err = DB.Model(Models.UserConversation{}).
|
|
Updates(userConversation).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
func UpdateUserConversations(userConversations *[]Models.UserConversation) error {
|
|
var err error
|
|
|
|
err = DB.Model(Models.UserConversation{}).
|
|
Updates(userConversations).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
func UpdateOrCreateUserConversations(userConversations *[]Models.UserConversation) error {
|
|
var err error
|
|
|
|
err = DB.Model(Models.UserConversation{}).
|
|
Clauses(clause.OnConflict{
|
|
Columns: []clause.Column{{Name: "id"}},
|
|
DoUpdates: clause.AssignmentColumns([]string{"admin"}),
|
|
}).
|
|
Create(userConversations).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
func DeleteUserConversation(userConversation *Models.UserConversation) error {
|
|
return DB.Session(&gorm.Session{FullSaveAssociations: true}).
|
|
Delete(userConversation).
|
|
Error
|
|
}
|