Last active
April 8, 2020 15:13
-
-
Save nobbynobbs/5932d80e7cbf9795f5d2375ec87ba5a0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Dict, Any, List | |
import abc | |
class Repository(abc.ABC): | |
def __init__(self, model): | |
self.model = model # or connection pool | |
def create_one(self, data: Dict[str, Any]): | |
item = self.model.from_dict(data) | |
item.save() | |
return item.id | |
def create_many(self, data: List[Dict[str, Any]]): | |
"""create many items somehow""" | |
class CRUD: | |
def __init__(self, repository: Repository): | |
self.repository = repository | |
def handler_create(self, request): | |
data = request.data | |
# here must be some validation | |
id_ = self.repository.create_one(data) | |
return self.response(id_) | |
def handle_create_many(self, request): | |
data = request.data | |
# here must be some validation | |
ids = self.repository.create_many(data) | |
return self.response(ids) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment