package Database
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/clause"
|
|
)
|
|
|
|
// Attachment holds the attachment data
|
|
type Attachment struct {
|
|
Base
|
|
FilePath string `gorm:"not null" json:"-"`
|
|
Mimetype string `gorm:"not null" json:"mimetype"`
|
|
Extension string `gorm:"not null" json:"extension"`
|
|
Data string `gorm:"-" json:"data"`
|
|
ImageLink string `gorm:"-" json:"image_link"`
|
|
}
|
|
|
|
// GetAttachmentByID gets the attachment record by the id
|
|
func GetAttachmentByID(id string) (MessageData, error) {
|
|
var (
|
|
messageData MessageData
|
|
err error
|
|
)
|
|
|
|
err = DB.Preload(clause.Associations).
|
|
First(&messageData, "id = ?", id).
|
|
Error
|
|
|
|
return messageData, err
|
|
}
|
|
|
|
// CreateAttachment creates the attachment record
|
|
func (attachment *Attachment) CreateAttachment() error {
|
|
var (
|
|
err error
|
|
)
|
|
|
|
err = DB.Session(&gorm.Session{FullSaveAssociations: true}).
|
|
Create(attachment).
|
|
Error
|
|
|
|
return err
|
|
}
|
|
|
|
// DeleteAttachment deletes the attachment record
|
|
func (attachment *Attachment) DeleteAttachment() error {
|
|
return DB.Session(&gorm.Session{FullSaveAssociations: true}).
|
|
Delete(attachment).
|
|
Error
|
|
}
|