big fix request statements && fix models.py && fix AbstractCRUD
parent
16c3da5ef0
commit
c463e42009
|
|
@ -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.
Binary file not shown.
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
@ -392,8 +397,15 @@ class Triggers(AbstractCRUD):
|
||||||
"status": self.status,
|
"status": self.status,
|
||||||
"user_id": self.user.id,
|
"user_id": self.user.id,
|
||||||
"author": self.user.login,}
|
"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"))
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue