big fix request statements && fix models.py && fix AbstractCRUD

master/v0.1.0
TBS093A 2020-08-29 17:17:43 +02:00
parent 16c3da5ef0
commit c463e42009
6 changed files with 58 additions and 38 deletions

View File

@ -1,4 +1,7 @@
from django.db import models from django.db import models
from django.http import HttpResponse
from datetime import datetime
from .utilities import *
class ValidationUtils(): class ValidationUtils():
@ -116,13 +119,13 @@ class AbstractCreate(AbstractUtilsCRUD):
""" """
save object without parent save object without parent
""" """
newObject = self._objectFactory() 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 @classmethod
def addObject(self, request, parentID, privilige): def addObjectWithParent(self, request, parentID, privilige):
""" """
create object with parent create object with parent
""" """
@ -139,7 +142,7 @@ class AbstractCreate(AbstractUtilsCRUD):
""" """
save object with parent & subject + comment & set trigger time save object with parent & subject + comment & set trigger time
""" """
newObject = self._objectFactory() newObject = self._objectFactory()()
newObject.fromDict(objectDict) newObject.fromDict(objectDict)
self.__setParentID(parentID) self.__setParentID(parentID)
@ -166,7 +169,7 @@ class AbstractUpdate(AbstractUtilsCRUD):
@classmethod @classmethod
def putObject(self, request, objectID, privilige): def putObject(self, request, objectID, privilige):
object = jsonLoad(request) object = jsonLoad(request)
if checkSession(request, privilige) and checkUserPermission(object, request) if checkSession(request, privilige) and checkUserPermission(object, request):
return self._updateObject(object, objectID) return self._updateObject(object, objectID)
else: else:
return HttpResponse("No Permission") return HttpResponse("No Permission")

Binary file not shown.

Binary file not shown.

View File

@ -89,19 +89,19 @@ def logoutUser(request):
return deleteSession(request) return deleteSession(request)
def registerUser(request): def registerUser(request):
return Users.addObject(request, None, None) return Users.addObject(request)
def addThread(request): def addThread(request):
return Threads.addObject(request, None, 2) return Threads.addObject(request, 2)
def addSubject(request, threadID): def addSubject(request, threadID):
return Subjects.addObject(request, threadID, 1) return Subjects.addObjectWithParent(request, threadID, 1)
def addComment(request, subjectID): def addComment(request, subjectID):
return Comments.addObject(request, subjectID, 1) return Comments.addObjectWithParent(request, subjectID, 1)
def addRating(request, commentID): def addRating(request, commentID):
return Ratings.addObject(request, commentID, 1) return Ratings.addObjectWithParent(request, commentID, 1)
# Forum GET Methods # Forum GET Methods
@ -109,7 +109,7 @@ def getUser(request, id):
return Users.getObject(request, id, 2) return Users.getObject(request, id, 2)
def getUsersAll(request): def getUsersAll(request):
return Users.getAllObjects(request, 2) return Users.getAllObjects()
def getThreadsAll(request): def getThreadsAll(request):
return Threads.getAllObjects(request, 1) return Threads.getAllObjects(request, 1)

View File

@ -90,7 +90,7 @@ class ObjectAbstract(models.Model):
@classmethod @classmethod
def putObject(self, request, objectID, privilige): def putObject(self, request, objectID, privilige):
object = jsonLoad(request) object = jsonLoad(request)
if checkSession(request, privilige) and checkUserPermission(object, request) if checkSession(request, privilige) and checkUserPermission(object, request):
return self.updateObject(request, object, objectID) return self.updateObject(request, object, objectID)
else: else:
return HttpResponse("No Permission") return HttpResponse("No Permission")
@ -142,35 +142,29 @@ class Users(AbstractCRUD):
# Object Factory for abstract # Object Factory for abstract
def objectFactory(): def _objectFactory():
return Users() return Users
# Get One User
def __getObjectNormal(objectID):
oneUser = Users.objects.get(pk = objectID).toDict()
return HttpResponse(json.dumps(oneUser))
# Create User # Create User
@classmethod @classmethod
def addObject(request, privilige): def addObject(self, request):
newUser = jsonLoad(request) newUser = jsonLoad(request)
newUser['privilige'] = 1 newUser['privilige'] = 1
newUser['password'] = createPassHash(object['password']) newUser['password'] = createPassHash(newUser['password'])
if self.__validateUnique(newUser): if self._validateUnique(newUser):
return self.__saveObject(newUser) return self._saveObject(newUser)
else: else:
return HttpResponse("User Is Already Exist") return HttpResponse("User Is Already Exist")
def __validateUnique(userDict): def _validateUnique(self, userDict):
usersAll = self.__allObjectsDict(User) usersAll = self._allObjectsDict()
for user in usersAll: for user in usersAll:
if user['login'].upper() == userDict['login'].upper(): if user['login'].upper() == userDict['login'].upper():
return False return False
return True return True
def __saveObject(objectDict): def _saveObject(self, objectDict):
newUser = Users() newUser = Users()
newUser.fromDict(objectDict) newUser.fromDict(objectDict)
newUser.save() newUser.save()
@ -178,11 +172,11 @@ class Users(AbstractCRUD):
# Update User # Update User
def updateObject(self, userDict, objectID): def _updateObject(self, userDict, objectID):
putUser = Users.objects.get(pk = objectID) putUser = Users.objects.get(pk = objectID)
if checkPassHash(userDict['passwordOld'], putUser.password): if checkPassHash(userDict['passwordOld'], putUser.password):
if 'passwordNew' in userDict.keys(): if 'passwordNew' in userDict.keys():
userDict['password'] = createPassHash(objectDict['passwordNew']) userDict['password'] = createPassHash(userDict['passwordNew'])
else: else:
return HttpResponse('Bad Password') return HttpResponse('Bad Password')
putUser.fromDict(userDict) putUser.fromDict(userDict)
@ -192,10 +186,11 @@ class Users(AbstractCRUD):
# Delete User # Delete User
@classmethod @classmethod
def deleteObject(request, objectID, privilige): def deleteObject(self, request, objectID, privilige):
checkPass = jsonLoad(request)
objectDel = Users.objects.get(pk = objectID) objectDel = Users.objects.get(pk = objectID)
if checkSession(request, privilige) and checkUserPermission(objectDel.toDict(), request): if checkSession(request, privilige) and checkUserPermission(objectDel.toDict(), request):
if checkPassHash(objectDict['password'], objectDel.password): if checkPassHash(checkPass['password'], objectDel.password):
pass pass
else: else:
return HttpResponse("Bad Password") return HttpResponse("Bad Password")
@ -225,12 +220,12 @@ class Threads(AbstractCRUD):
# Object Factory for abstract # Object Factory for abstract
def objectFactory(): def objectFactory():
return Threads() return Threads
# Create Thread (validation) # Create Thread (validation)
def _validateUnique(self, objectDict): def _validateUnique(self, objectDict):
objectsAll = Threads.__allObjectsDict(model) objectsAll = Threads._allObjectsDict()
for x in objectsAll: for x in objectsAll:
if x['name'].upper() == objectDict['name'].upper(): if x['name'].upper() == objectDict['name'].upper():
return False return False
@ -263,11 +258,11 @@ class Subjects(AbstractCRUD):
# Object Factory for abstract # Object Factory for abstract
def objectFactory(): def objectFactory():
return Subjects() return Subjects
# Create Subject ( create new subject + comment ones ) # Create Subject ( create new subject + comment ones )
def _createFirstComment(newSubject, objectDict): def _createFirstComment(self,newSubject, objectDict):
newComment = Comments(subject = newSubject) newComment = Comments(subject = newSubject)
newComment.fromDict(objectDict['comment']) newComment.fromDict(objectDict['comment'])
newComment.save() newComment.save()
@ -307,7 +302,7 @@ class Comments(AbstractCRUD):
# Object Factory for abstract # Object Factory for abstract
def objectFactory(): def objectFactory():
return Comments() return Comments
class Ratings(AbstractCRUD): class Ratings(AbstractCRUD):
@ -332,11 +327,16 @@ class Ratings(AbstractCRUD):
"comment_id": self.comment.id, "comment_id": self.comment.id,
"subject": self.comment.subject.name} "subject": self.comment.subject.name}
# Object Factory for abstract
def objectFactory():
return Ratings
# Create Ratings (validate) # Create Ratings (validate)
@classmethod @classmethod
def __validateUnique(model, parentID, objectDict): def _validateUnique(self, parentID, objectDict):
objectsAll = model.__allObjectsDict(model) objectsAll = Ratings._allObjectsDict(model)
for x in objectsAll: for x in objectsAll:
if model == Ratings: if model == Ratings:
if int(x['user_id']) == int(objectDict['user_id']) and int(x['comment_id']) == parentID: if int(x['user_id']) == int(objectDict['user_id']) and int(x['comment_id']) == parentID:
@ -370,6 +370,11 @@ class Transactions(AbstractCRUD):
"author": self.user.login, "author": self.user.login,
"exchange_id": self.exchange.id} "exchange_id": self.exchange.id}
# Object Factory for abstract
def objectFactory():
return Transactions
class Triggers(AbstractCRUD): class Triggers(AbstractCRUD):
course_values_for_trigger = models.FloatField(default=255) course_values_for_trigger = models.FloatField(default=255)
@ -393,7 +398,14 @@ class Triggers(AbstractCRUD):
"user_id": self.user.id, "user_id": self.user.id,
"author": self.user.login,} "author": self.user.login,}
def _setActualTimeTrigger(self) # Object Factory for abstract
def objectFactory():
return Triggers
# Create Trigger (set actual time)
def _setActualTimeTrigger(self):
self.date_of_trigger = str(datetime.now().strftime("%Y-%d-%m %H:%M")) self.date_of_trigger = str(datetime.now().strftime("%Y-%d-%m %H:%M"))
@ -413,3 +425,8 @@ class Notifications(ObjectAbstract):
return {"id": self.id, return {"id": self.id,
"message": self.message, "message": self.message,
"user_id": self.user.id} "user_id": self.user.id}
# Object Factory for abstract
def objectFactory():
return Notifications