database & CD bucket

This commit is contained in:
2024-11-13 21:16:22 +01:00
parent f5013e5f9e
commit abd805b9cd
18 changed files with 530 additions and 34 deletions

30
database/controller.go Normal file
View File

@ -0,0 +1,30 @@
package database
import (
"git.schreifuchs.ch/schreifuchs/warehouse/api"
"git.schreifuchs.ch/schreifuchs/warehouse/model"
)
func (db *DB) InsertBucket(bucket *model.Bucket) error {
return db.conn.Create(bucket).Error
}
func (db *DB) FindApiBuckets(limit, offset int) (buckets []api.Bucket, err error) {
buckets = make([]api.Bucket, 0)
err = db.conn.Model(&model.Bucket{}).Limit(limit).Offset(offset).Find(&buckets).Error
return
}
func (db *DB) FindBucketIdByName(name string) (id uint, err error) {
b := &model.Bucket{}
err = db.conn.Select("id").First(b).Error
return b.ID, err
}
func (db *DB) DeleteBucket(id uint) error {
return db.conn.Delete(&model.Bucket{}, id).Error
}
func (db *DB) DeleteBucketByName(name string) error {
return db.conn.Delete(&model.Bucket{}).Where("name = ?", name).Error
}

20
database/resource.go Normal file
View File

@ -0,0 +1,20 @@
package database
import (
"git.schreifuchs.ch/schreifuchs/warehouse/model"
"gorm.io/driver/sqlite" // Sqlite driver based on CGO
"gorm.io/gorm"
)
type DB struct {
conn *gorm.DB
}
func Init(file string) (*DB, error) {
if db, err := gorm.Open(sqlite.Open(file), &gorm.Config{}); err != nil {
return nil, err
} else {
db.AutoMigrate(&model.Bucket{}, &model.Object{})
return &DB{conn: db}, nil
}
}