package database import ( "gorm.io/gorm" ) /* State functions */ func LatestCommand(db *gorm.DB) (Command, error) { var state Command err := db.Last(&state).Error return state, err } /* Key functions */ func CountKeys(db *gorm.DB) (int64, error) { var count int64 err := db.Model(&AccessKey{}).Count(&count).Error return count, err } func ListKeys(db *gorm.DB) ([]AccessKey, error) { var keys []AccessKey err := db.Find(&keys).Error return keys, err } func CreateKey(db *gorm.DB, k *AccessKey) error { return db.Create(&k).Error } func DeleteKeyByID(db *gorm.DB, id int) error { res := db.Delete(&AccessKey{}, id) if res.Error != nil { return res.Error } if res.RowsAffected == 0 { return gorm.ErrRecordNotFound } return nil } /* File functions */ func CountFiles(db *gorm.DB) (int64, error) { var count int64 err := db.Model(&File{}).Count(&count).Error return count, err } func ListFiles(db *gorm.DB) ([]File, error) { var files []File err := db.Find(&files).Error return files, err } 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 DeleteFileByID(db *gorm.DB, id int) error { res := db.Delete(&File{}, id) if res.Error != nil { return res.Error } if res.RowsAffected == 0 { return gorm.ErrRecordNotFound } return nil }