Rename oci_model to appr_model
This commit is contained in:
parent
f0d4841155
commit
6622f27c93
19 changed files with 222 additions and 171 deletions
48
data/appr_model/package.py
Normal file
48
data/appr_model/package.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
from cnr.models.package_base import get_media_type, manifest_media_type
|
||||
from peewee import prefetch
|
||||
|
||||
|
||||
from data import model
|
||||
from data.database import Repository, Namespace, Tag, ManifestListManifest
|
||||
from data.appr_model import tag as tag_model
|
||||
|
||||
|
||||
def list_packages_query(namespace=None, media_type=None, search_query=None, username=None):
|
||||
""" List and filter repository by search query. """
|
||||
fields = [model.repository.SEARCH_FIELDS.name.name]
|
||||
|
||||
if search_query is not None:
|
||||
repositories = model.repository.get_app_search(search_query,
|
||||
username=username,
|
||||
search_fields=fields,
|
||||
limit=50)
|
||||
if not repositories:
|
||||
return []
|
||||
|
||||
repo_query = (Repository
|
||||
.select(Repository, Namespace.username)
|
||||
.join(Namespace, on=(Repository.namespace_user == Namespace.id))
|
||||
.where(Repository.id << [repo.id for repo in repositories]))
|
||||
else:
|
||||
repo_query = (Repository
|
||||
.select(Repository, Namespace.username)
|
||||
.join(Namespace, on=(Repository.namespace_user == Namespace.id))
|
||||
.where(Repository.visibility == model.repository.get_public_repo_visibility(),
|
||||
Repository.kind == Repository.kind.get_id('application')))
|
||||
|
||||
if namespace:
|
||||
repo_query = (repo_query
|
||||
.where(Namespace.username == namespace))
|
||||
|
||||
tag_query = (Tag
|
||||
.select()
|
||||
.where(Tag.tag_kind == Tag.tag_kind.get_id('release'))
|
||||
.order_by(Tag.lifetime_start))
|
||||
|
||||
if media_type:
|
||||
tag_query = tag_model.filter_tags_by_media_type(tag_query, media_type)
|
||||
|
||||
tag_query = tag_model.tag_alive_oci(tag_query)
|
||||
query = prefetch(repo_query, tag_query)
|
||||
|
||||
return query
|
Reference in a new issue