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
44
endpoints/api/repoemail_models_interface.py
Normal file
44
endpoints/api/repoemail_models_interface.py
Normal file
|
@ -0,0 +1,44 @@
|
|||
from abc import ABCMeta, abstractmethod
|
||||
from collections import namedtuple
|
||||
|
||||
from six import add_metaclass
|
||||
|
||||
|
||||
class RepositoryAuthorizedEmail(
|
||||
namedtuple('RepositoryAuthorizedEmail', ['email', 'repository_name', 'namespace_name', 'confirmed', 'code',])):
|
||||
"""
|
||||
Tag represents a name to an image.
|
||||
:type email: string
|
||||
:type repository_name: string
|
||||
:type namespace_name: string
|
||||
:type confirmed: boolean
|
||||
:type code: string
|
||||
"""
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'email': self.email,
|
||||
'repository': self.repository_name,
|
||||
'namespace': self.namespace_name,
|
||||
'confirmed': self.confirmed,
|
||||
'code': self.code
|
||||
}
|
||||
|
||||
|
||||
@add_metaclass(ABCMeta)
|
||||
class RepoEmailDataInterface(object):
|
||||
"""
|
||||
Interface that represents all data store interactions required by a Repo Email.
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def get_email_authorized_for_repo(self, namespace_name, repository_name, email):
|
||||
"""
|
||||
Returns a RepositoryAuthorizedEmail if available else None
|
||||
"""
|
||||
|
||||
@abstractmethod
|
||||
def create_email_authorization_for_repo(self, namespace_name, repository_name, email):
|
||||
"""
|
||||
Returns the newly created repository authorized email.
|
||||
"""
|
Reference in a new issue