96 lines
1.6 KiB
Go
96 lines
1.6 KiB
Go
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 FindKeyByName(db *gorm.DB, name string) (AccessKey, error) {
|
|
var key AccessKey
|
|
err := db.Where("key_name = ?", name).First(&key).Error
|
|
return key, 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
|
|
}
|