mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-06-21 12:37:19 -04:00
Remove db.DefaultContext
in routers/
and cmd/
(#26076)
Now, the only remaining usages of `models.db.DefaultContext` are in - `modules` - `models` - `services`
This commit is contained in:
parent
24c3bb95ac
commit
f3d41c61eb
11 changed files with 127 additions and 134 deletions
|
@ -4,6 +4,7 @@
|
|||
package conan
|
||||
|
||||
import (
|
||||
std_ctx "context"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
|
@ -602,69 +603,64 @@ func DeletePackageV2(ctx *context.Context) {
|
|||
}
|
||||
|
||||
func deleteRecipeOrPackage(apictx *context.Context, rref *conan_module.RecipeReference, ignoreRecipeRevision bool, pref *conan_module.PackageReference, ignorePackageRevision bool) error {
|
||||
ctx, committer, err := db.TxContext(db.DefaultContext)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer committer.Close()
|
||||
var pd *packages_model.PackageDescriptor
|
||||
versionDeleted := false
|
||||
|
||||
pv, err := packages_model.GetVersionByNameAndVersion(ctx, apictx.Package.Owner.ID, packages_model.TypeConan, rref.Name, rref.Version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
pd, err := packages_model.GetPackageDescriptor(ctx, pv)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
filter := map[string]string{
|
||||
conan_module.PropertyRecipeUser: rref.User,
|
||||
conan_module.PropertyRecipeChannel: rref.Channel,
|
||||
}
|
||||
if !ignoreRecipeRevision {
|
||||
filter[conan_module.PropertyRecipeRevision] = rref.RevisionOrDefault()
|
||||
}
|
||||
if pref != nil {
|
||||
filter[conan_module.PropertyPackageReference] = pref.Reference
|
||||
if !ignorePackageRevision {
|
||||
filter[conan_module.PropertyPackageRevision] = pref.RevisionOrDefault()
|
||||
err := db.WithTx(apictx, func(ctx std_ctx.Context) error {
|
||||
pv, err := packages_model.GetVersionByNameAndVersion(ctx, apictx.Package.Owner.ID, packages_model.TypeConan, rref.Name, rref.Version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
pfs, _, err := packages_model.SearchFiles(ctx, &packages_model.PackageFileSearchOptions{
|
||||
VersionID: pv.ID,
|
||||
Properties: filter,
|
||||
pd, err = packages_model.GetPackageDescriptor(ctx, pv)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
filter := map[string]string{
|
||||
conan_module.PropertyRecipeUser: rref.User,
|
||||
conan_module.PropertyRecipeChannel: rref.Channel,
|
||||
}
|
||||
if !ignoreRecipeRevision {
|
||||
filter[conan_module.PropertyRecipeRevision] = rref.RevisionOrDefault()
|
||||
}
|
||||
if pref != nil {
|
||||
filter[conan_module.PropertyPackageReference] = pref.Reference
|
||||
if !ignorePackageRevision {
|
||||
filter[conan_module.PropertyPackageRevision] = pref.RevisionOrDefault()
|
||||
}
|
||||
}
|
||||
|
||||
pfs, _, err := packages_model.SearchFiles(ctx, &packages_model.PackageFileSearchOptions{
|
||||
VersionID: pv.ID,
|
||||
Properties: filter,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(pfs) == 0 {
|
||||
return conan_model.ErrPackageReferenceNotExist
|
||||
}
|
||||
|
||||
for _, pf := range pfs {
|
||||
if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
has, err := packages_model.HasVersionFileReferences(ctx, pv.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !has {
|
||||
versionDeleted = true
|
||||
|
||||
return packages_service.DeletePackageVersionAndReferences(ctx, pv)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(pfs) == 0 {
|
||||
return conan_model.ErrPackageReferenceNotExist
|
||||
}
|
||||
|
||||
for _, pf := range pfs {
|
||||
if err := packages_service.DeletePackageFile(ctx, pf); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
versionDeleted := false
|
||||
has, err := packages_model.HasVersionFileReferences(ctx, pv.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !has {
|
||||
versionDeleted = true
|
||||
|
||||
if err := packages_service.DeletePackageVersionAndReferences(ctx, pv); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if err := committer.Commit(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if versionDeleted {
|
||||
notification.NotifyPackageDelete(apictx, apictx.Doer, pd)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue