refactor: keep only one struct for package
This commit is contained in:
		| @@ -28,32 +28,11 @@ import ( | ||||
| 	"xorm.io/xorm" | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| ) | ||||
|  | ||||
| const CurrentVersion = 5 | ||||
|  | ||||
| type Package struct { | ||||
| 	BasePkgName   string              `sh:"basepkg_name" xorm:"notnull 'basepkg_name'"` | ||||
| 	Name          string              `sh:"name,required" xorm:"notnull unique(name_repo) 'name'"` | ||||
| 	Version       string              `sh:"version,required" xorm:"notnull 'version'"` | ||||
| 	Release       int                 `sh:"release" xorm:"notnull 'release'"` | ||||
| 	Epoch         uint                `sh:"epoch" xorm:"'epoch'"` | ||||
| 	Summary       map[string]string   `xorm:"json 'summary'"` | ||||
| 	Description   map[string]string   `xorm:"json 'description'"` | ||||
| 	Group         map[string]string   `xorm:"json 'group_name'"` | ||||
| 	Homepage      map[string]string   `xorm:"json 'homepage'"` | ||||
| 	Maintainer    map[string]string   `xorm:"json 'maintainer'"` | ||||
| 	Architectures []string            `sh:"architectures" xorm:"json 'architectures'"` | ||||
| 	Licenses      []string            `sh:"license" xorm:"json 'licenses'"` | ||||
| 	Provides      []string            `sh:"provides" xorm:"json 'provides'"` | ||||
| 	Conflicts     []string            `sh:"conflicts" xorm:"json 'conflicts'"` | ||||
| 	Replaces      []string            `sh:"replaces" xorm:"json 'replaces'"` | ||||
| 	Depends       map[string][]string `xorm:"json 'depends'"` | ||||
| 	BuildDepends  map[string][]string `xorm:"json 'builddepends'"` | ||||
| 	OptDepends    map[string][]string `xorm:"json 'optdepends'"` | ||||
| 	Repository    string              `xorm:"notnull unique(name_repo) 'repository'"` | ||||
| } | ||||
|  | ||||
| type Version struct { | ||||
| 	Version int `xorm:"'version'"` | ||||
| } | ||||
| @@ -76,6 +55,8 @@ func New(config Config) *Database { | ||||
| func (d *Database) Connect() error { | ||||
| 	dsn := d.config.GetPaths().DBPath | ||||
| 	engine, err := xorm.NewEngine("sqlite", dsn) | ||||
| 	// engine.SetLogLevel(log.LOG_DEBUG) | ||||
| 	// engine.ShowSQL(true) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @@ -87,7 +68,7 @@ func (d *Database) Init(ctx context.Context) error { | ||||
| 	if err := d.Connect(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err := d.engine.Sync2(new(Package), new(Version)); err != nil { | ||||
| 	if err := d.engine.Sync2(new(alrsh.Package), new(Version)); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	ver, ok := d.GetVersion(ctx) | ||||
| @@ -119,10 +100,10 @@ func (d *Database) addVersion(ver int) error { | ||||
| } | ||||
|  | ||||
| func (d *Database) reset() error { | ||||
| 	return d.engine.DropTables(new(Package), new(Version)) | ||||
| 	return d.engine.DropTables(new(alrsh.Package), new(Version)) | ||||
| } | ||||
|  | ||||
| func (d *Database) InsertPackage(ctx context.Context, pkg Package) error { | ||||
| func (d *Database) InsertPackage(ctx context.Context, pkg alrsh.Package) error { | ||||
| 	session := d.engine.Context(ctx) | ||||
|  | ||||
| 	affected, err := session.Where("name = ? AND repository = ?", pkg.Name, pkg.Repository).Update(&pkg) | ||||
| @@ -140,14 +121,14 @@ func (d *Database) InsertPackage(ctx context.Context, pkg Package) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (d *Database) GetPkgs(_ context.Context, where string, args ...any) ([]Package, error) { | ||||
| 	var pkgs []Package | ||||
| func (d *Database) GetPkgs(_ context.Context, where string, args ...any) ([]alrsh.Package, error) { | ||||
| 	var pkgs []alrsh.Package | ||||
| 	err := d.engine.Where(where, args...).Find(&pkgs) | ||||
| 	return pkgs, err | ||||
| } | ||||
|  | ||||
| func (d *Database) GetPkg(where string, args ...any) (*Package, error) { | ||||
| 	var pkg Package | ||||
| func (d *Database) GetPkg(where string, args ...any) (*alrsh.Package, error) { | ||||
| 	var pkg alrsh.Package | ||||
| 	has, err := d.engine.Where(where, args...).Get(&pkg) | ||||
| 	if err != nil || !has { | ||||
| 		return nil, err | ||||
| @@ -156,12 +137,12 @@ func (d *Database) GetPkg(where string, args ...any) (*Package, error) { | ||||
| } | ||||
|  | ||||
| func (d *Database) DeletePkgs(_ context.Context, where string, args ...any) error { | ||||
| 	_, err := d.engine.Where(where, args...).Delete(&Package{}) | ||||
| 	_, err := d.engine.Where(where, args...).Delete(&alrsh.Package{}) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (d *Database) IsEmpty() bool { | ||||
| 	count, err := d.engine.Count(new(Package)) | ||||
| 	count, err := d.engine.Count(new(alrsh.Package)) | ||||
| 	return err != nil || count == 0 | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user