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

Binary file not shown.

Binary file not shown.

View File

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

View File

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