upgrade AbstractCRUD

master/v0.1.0
TBS093A 2020-08-29 15:55:30 +02:00
parent 5641420acd
commit 607866bcb0
2 changed files with 45 additions and 24 deletions

View File

@ -33,7 +33,7 @@ class AbstractUtilsCRUD():
class AbstractGet(AbstractUtilsCRUD): class AbstractGet(AbstractUtilsCRUD):
""" """
This class have a abstract getOne / getAll / getByParent This class have a abstract `getOne` / `getAll` / `getByParent`
""" """
parent_id_field = '' parent_id_field = ''
@ -65,58 +65,76 @@ class AbstractGet(AbstractUtilsCRUD):
return HttpResponse(self.__getAllByParentID(parentID)) return HttpResponse(self.__getAllByParentID(parentID))
def __getAllByParentID(self, parentID): def __getAllByParentID(self, parentID):
list = [ x.toDict() for x in self.objectFactory() list = [
.__get.objects.filter(**{ parent_id_field: parentID })] x.toDict()
for x in self.objectFactory()
.__get.objects.filter(**{ parent_id_field: parentID })
]
return json.dumps(list) return json.dumps(list)
class AbstractCreate(AbstractUtilsCRUD): class AbstractCreate(AbstractUtilsCRUD):
"""
This class have a abstract `create`
"""
@classmethod @classmethod
def addObject(request, privilige): def addObject(request, privilige):
"""
create object
"""
object = jsonLoad(request) object = jsonLoad(request)
if checkSession(request, privilige): if checkSession(request, privilige):
if self.__validateUnique(object): if self.validateUnique(object):
return self.__saveObject(object) return self.saveObject(object)
else: else:
return HttpResponse("Object Is Already Exist") return HttpResponse("Object Is Already Exist")
else: else:
return HttpResponse("No Permission") return HttpResponse("No Permission")
@classmethod def validateUnique(self, userDict):
def __validateUnique(self, userDict): """
use validate in override this method
"""
return True return True
@classmethod def saveObject(self, objectDict):
def __saveObject(self, objectDict): """
newObject = self.__getObject() save object without parent
"""
newObject = self.objectFactory()
newObject.fromDict(objectDict) newObject.fromDict(objectDict)
newObject.save() newObject.save()
return HttpResponse(f"Add new Object: {newObject.toDict()}") return HttpResponse(f"Add new Object: {newObject.toDict()}")
@classmethod def saveObject(self, parentID, objectDict):
def __saveObject(self, parentID, objectDict): """
newObject = self.__getObject() save object with parent & subject + comment & set trigger time
"""
newObject = self.objectFactory()
newObject.fromDict(objectDict) newObject.fromDict(objectDict)
self.__setParentID(parentID) self.setParentID(parentID)
self.__createFirstComment(newObject, objectDict) self.createFirstComment(newObject, objectDict)
self.__setActualTimeTrigger() self.setActualTimeTrigger()
newObject.save() newObject.save()
return HttpResponse(f"Add new Subject: {newObject.toDict()} -> {newComment.toDict()}") return HttpResponse(f"Add new Object: {newObject.toDict()}")
@classmethod def createFirstComment(newSubject, objectDict):
def __createFirstComment(newSubject, objectDict):
pass pass
@classmethod def setActualTimeTrigger():
def __setActualTimeTrigger():
pass pass
class AbstractUpdate(AbstractUtilsCRUD): class AbstractUpdate(AbstractUtilsCRUD):
pass
def updateObject(self, request, objectDict, objectID):
objectOld = self.objectFactory().objects.get(pk = objectID)
objectOld.fromDict(objectDict)
objectOld.save()
return HttpResponse(f"Update Object: {objectOld.toDict()}")
class AbstractDelete(AbstractUtilsCRUD): class AbstractDelete(AbstractUtilsCRUD):

View File

@ -184,8 +184,11 @@ class Users(ObjectAbstract):
else: else:
return HttpResponse('Bad Password') return HttpResponse('Bad Password')
putUser.fromDict(userDict) putUser.fromDict(userDict)
putUser.save() if checkUserPermission(PutUser.toDict(), request):
return HttpResponse(f"User: {putUser.toDict()} has been updated") putUser.save()
return HttpResponse(f"User: {putUser.toDict()} has been updated")
else
return HttpResponse("No Permission")
# Delete User # Delete User