package repositories import ( "fmt" "time" "xorm.io/xorm" "xps/datamodels" "xps/viewmodels" ) type RepoObjectRepo struct { engine *xorm.Engine } func NewRepoObjectRepo(engine *xorm.Engine) *RepoObjectRepo { return &RepoObjectRepo{ engine: engine, } } func (d *RepoObjectRepo) GetListById(repoId int64) ([]viewmodels.RepoObjectInfo, error) { sqlSelect := ` SELECT A.* ` sqlFrom := ` FROM repo_object AS A ` sqlWhere := ` WHERE A.deleted_flag = 0 ` sqlWhere += fmt.Sprintf(" AND A.repo_id = %d ", repoId) sqlOrderBy := " ORDER BY A.model_id, A.object_id ASC " datalist := make([]viewmodels.RepoObjectInfo, 0) err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist) if err != nil { return nil, err } else { return datalist, nil } } func (d *RepoObjectRepo) Create(data *datamodels.RepoObject) error { data.CreatedAt = time.Now() _, err := d.engine.Insert(data) return err } func (d *RepoObjectRepo) Delete(repoId, modelId, objectId int64) error { data := &datamodels.RepoObject{} _, err := d.engine. Where("repo_id = ?", repoId). Where("model_id = ?", modelId). Where("object_id = ?", objectId). Delete(data) return err }