Skip to content

Instantly share code, notes, and snippets.

@nobbynobbs
Last active April 8, 2020 15:13
Show Gist options
  • Save nobbynobbs/5932d80e7cbf9795f5d2375ec87ba5a0 to your computer and use it in GitHub Desktop.
Save nobbynobbs/5932d80e7cbf9795f5d2375ec87ba5a0 to your computer and use it in GitHub Desktop.
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