From 1a35b6adabfd04cfce46aa14c4fc16b50fb32b93 Mon Sep 17 00:00:00 2001 From: Kamil <39993982+TBS093A@users.noreply.github.com> Date: Tue, 15 Sep 2020 17:39:09 +0200 Subject: [PATCH] Update README.md --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a06ad56..de71451 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,56 @@ class AbstractUtilsCRUD(): It're a utils for CRUD classes using global like this: ```python + +class AbstractGet(AbstractUtilsCRUD): + """ + This class have a abstract `getOne` / `getAll` / `getByParent` + """ + + parent_id_field = '' + + @classmethod + def getObject(self, objectID): + """ + get one object + """ + return self.__getObjectNormal(self, objectID) + + def __getObjectNormal(self, objectID): + object = self._objectFactory().objects.get(pk = objectID).toDict() + return HttpResponse(json.dumps(object)) + + @classmethod + def getAllObjects(self): + """ + get all objects + """ + objectsAll = self._allObjectsDict() + return HttpResponse(json.dumps(objectsAll)) + + @classmethod + def getObjectsByParentID(self, parentID): + """ + get objects by parent id + """ + return HttpResponse(self.__getAllByParentID(parentID)) + + @classmethod + def __getAllByParentID(self, parentID): + list = [ + x.toDict() + for x in self._objectFactory() + .objects.filter(**{ self._objectFactory().parent_id_field: parentID }) + ] + return json.dumps(list) + + class Meta: + abstract = True + +``` + +```python + class AbstractCreate(AbstractUtilsCRUD): """ This class have a abstract `create` @@ -104,12 +154,14 @@ class AbstractCreate(AbstractUtilsCRUD): """ del objectDict['token'] newObject = self._objectFactory().objects.create(**objectDict) - self._setActualTimeTrigger(newObject) + + [...] + newObject.save() return HttpResponse(f"Add new Object: {newObject.toDict()}") ``` -Other classes looks similar to AbstractCreate (let's see AbstractCRUD for more details). +Other classes looks similar to AbstractCreate / AbstractGet (let's see AbstractCRUD for more details). Generaly - I'm gonna refactor this app with design patterns like: - chain of responsibility (thanks tree structure classes, possible go this way: endpoint request -> verify user (security functionality) -> app functionality)