refactor(endpoints/api/tag): refactor code for v22

this decouples the database models from the api

[TESTING->locally with docker compose]

Issue: https://coreosdev.atlassian.net/browse/QUAY-632

- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
This commit is contained in:
Charlton Austin 2017-07-06 14:50:30 -04:00
parent a3afd37c41
commit fc4b3642d3
7 changed files with 483 additions and 67 deletions

View file

@ -6,6 +6,7 @@ from peewee import JOIN_LEFT_OUTER, fn, PeeweeException
from datetime import datetime, timedelta
from cachetools import lru_cache
import data
from data.database import LogEntry, LogEntryKind, User, RepositoryActionCount, db
from data.model import config, user, DataModelException
@ -110,7 +111,11 @@ def log_action(kind_name, user_or_organization_name, performer=None, repository=
performer = performer.id
if repository is not None:
repository = repository.id
if hasattr(repository, 'namespace_name') and hasattr(repository, 'repository_name'):
maybe_repo = data.model.repository.get_repository(repository.namespace_name, repository.repository_name)
repository = maybe_repo.id if maybe_repo else None
elif hasattr(repository, 'id'):
repository = repository.id
kind = _get_log_entry_kind(kind_name)
metadata_json = json.dumps(metadata, default=_json_serialize)