refactor(endpoints/api/repoemail): added in pre_oci model
### Description of Changes this is so we can abstract away the data interface [TESTING->locally with docker compose] Issue: https://coreosdev.atlassian.net/browse/QUAY-626 ## Reviewer Checklist - [ ] 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:
parent
82488c9102
commit
d01b55f27d
5 changed files with 158 additions and 16 deletions
|
@ -7,9 +7,9 @@ from flask import request, abort
|
|||
from endpoints.api import (resource, nickname, require_repo_admin, RepositoryParamResource,
|
||||
log_action, validate_json_request, internal_only,
|
||||
path_param, show_if)
|
||||
from endpoints.api.repoemail_models_pre_oci import pre_oci_model as model
|
||||
from endpoints.exception import NotFound
|
||||
from app import tf
|
||||
from data import model
|
||||
from data.database import db
|
||||
from util.useremails import send_repo_authorization_email
|
||||
|
||||
|
@ -19,15 +19,6 @@ import features
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def record_view(record):
|
||||
return {
|
||||
'email': record.email,
|
||||
'repository': record.repository.name,
|
||||
'namespace': record.repository.namespace_user.username,
|
||||
'confirmed': record.confirmed
|
||||
}
|
||||
|
||||
|
||||
@internal_only
|
||||
@resource('/v1/repository/<apirepopath:repository>/authorizedemail/<email>')
|
||||
@show_if(features.MAILING)
|
||||
|
@ -39,11 +30,11 @@ class RepositoryAuthorizedEmail(RepositoryParamResource):
|
|||
@nickname('checkRepoEmailAuthorized')
|
||||
def get(self, namespace, repository, email):
|
||||
""" Checks to see if the given e-mail address is authorized on this repository. """
|
||||
record = model.repository.get_email_authorized_for_repo(namespace, repository, email)
|
||||
record = model.get_email_authorized_for_repo(namespace, repository, email)
|
||||
if not record:
|
||||
abort(404)
|
||||
|
||||
return record_view(record)
|
||||
return record.to_dict()
|
||||
|
||||
|
||||
@require_repo_admin
|
||||
|
@ -52,12 +43,12 @@ class RepositoryAuthorizedEmail(RepositoryParamResource):
|
|||
""" Starts the authorization process for an e-mail address on a repository. """
|
||||
|
||||
with tf(db):
|
||||
record = model.repository.get_email_authorized_for_repo(namespace, repository, email)
|
||||
record = model.get_email_authorized_for_repo(namespace, repository, email)
|
||||
if record and record.confirmed:
|
||||
return record_view(record)
|
||||
return record.to_dict()
|
||||
|
||||
if not record:
|
||||
record = model.repository.create_email_authorization_for_repo(namespace, repository, email)
|
||||
record = model.create_email_authorization_for_repo(namespace, repository, email)
|
||||
|
||||
send_repo_authorization_email(namespace, repository, email, record.code)
|
||||
return record_view(record)
|
||||
return record.to_dict()
|
||||
|
|
Reference in a new issue