mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Move package request routes and related routes to their respective routers. In addition, move some utility used for requests over from `aurweb.packages`. Introduced routers: - `aurweb.routers.requests` Introduced package: - `aurweb.requests` Introduced module: - `aurweb.requests.util` Changes: - Moved `aurweb.packages.validate` to `aurweb.pkgbase.validate` - Moved requests listing & request closure routes to `aurweb.routers.requests` - Moved pkgbase request creation route to `aurweb.routers.pkgbase` - Moved `get_pkgreq_by_id` from `aurweb.packages.util` to `aurweb.requests.util` and fixed its return type hint. Signed-off-by: Kevin Morris <kevr@0cost.org>
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from typing import Any, Dict
|
|
|
|
from aurweb import db
|
|
from aurweb.exceptions import ValidationError
|
|
from aurweb.models import PackageBase
|
|
|
|
|
|
def request(pkgbase: PackageBase,
|
|
type: str, comments: str, merge_into: str,
|
|
context: Dict[str, Any]) -> None:
|
|
if not comments:
|
|
raise ValidationError(["The comment field must not be empty."])
|
|
|
|
if type == "merge":
|
|
# Perform merge-related checks.
|
|
if not merge_into:
|
|
# TODO: This error needs to be translated.
|
|
raise ValidationError(
|
|
['The "Merge into" field must not be empty.'])
|
|
|
|
target = db.query(PackageBase).filter(
|
|
PackageBase.Name == merge_into
|
|
).first()
|
|
if not target:
|
|
# TODO: This error needs to be translated.
|
|
raise ValidationError([
|
|
"The package base you want to merge into does not exist."
|
|
])
|
|
|
|
db.refresh(target)
|
|
if target.ID == pkgbase.ID:
|
|
# TODO: This error needs to be translated.
|
|
raise ValidationError([
|
|
"You cannot merge a package base into itself."
|
|
])
|