feat: add basic deletion finding

This commit is contained in:
2026-04-26 18:43:23 +02:00
parent 7c069c0437
commit f589ae4faf
6 changed files with 79 additions and 60 deletions
+14 -47
View File
@@ -1,64 +1,31 @@
package database
import (
"fmt"
"io"
"log/slog"
"orbits-server/internal/shared/utility"
"path/filepath"
"gorm.io/gorm"
)
// it has been made more general for DRY purposes
// this function should only be called after manually checking the filetype
func BuildFileRecord(r io.Reader, origName string, contentDirectory string) (File, error) {
ext := filepath.Ext(origName)
category := utility.CategorizeMediaType(ext)
if category == utility.Unspecified {
return File{}, fmt.Errorf("unsupported filetype")
}
checksum, err := utility.GenerateHashFromReader(r)
if err != nil {
slog.Error("failed to calculate hash of file at given path", "error", err)
return File{}, err
}
safeName := utility.GenerateSafeName(category, ext)
destPath := filepath.Join(contentDirectory, safeName)
fData := File{
MediaType: category,
MetaName: origName,
FileName: safeName,
FilePath: destPath,
Checksum: checksum,
}
return fData, nil
}
func GetState(db *gorm.DB) (Command, error) {
func LatestState(db *gorm.DB) (Command, error) {
var state Command
if err := db.First(&state).Error; err != nil {
return Command{}, err
}
return state, nil
err := db.Last(&state).Error
return state, err
}
func GetFiles(db *gorm.DB) ([]File, error) {
func ListFiles(db *gorm.DB) ([]File, error) {
var files []File
return files, db.Find(&files).Error
err := db.Find(&files).Error
return files, err
}
func RegisterFile(db *gorm.DB, f File) error {
func FindFileByName(db *gorm.DB, name string) (File, error) {
var file File
err := db.Where("file_name = ?", name).First(&file).Error
return file, err
}
func CreateFile(db *gorm.DB, f File) error {
return db.Create(&f).Error
}
func DeregisterFile(db *gorm.DB, f File) error {
func DeleteFile(db *gorm.DB, f File) error {
return db.Delete(&f).Error
}