Encrypted messaging app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
1.9 KiB

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
}