def saverawrequestversion(self, _requestdatajson, _requestid, _assigneegroup, _assignee, status, userid, username, isministryuser, assigneefirstname, assigneemiddlename, assigneelastname): ispiiredacted = _requestdatajson["ispiiredacted"] if 'ispiiredacted' in _requestdatajson else False #Get documents result = FOIRawRequest.saverawrequestversion(_requestdatajson, _requestid, _assigneegroup, _assignee, status,ispiiredacted, userid, assigneefirstname, assigneemiddlename, assigneelastname) documentservice().createrawrequestdocumentversion(_requestid) asyncio.create_task(eventservice().postevent(_requestid,"rawrequest",userid, username, isministryuser)) return result
def post(requestid, ministryrequestid): try: requestjson = request.get_json() rquesextensionschema = FOIRequestExtensionSchema().load( requestjson) if (AuthHelper.isministrymember() == False): result = extensionservice().createrequestextension( requestid, ministryrequestid, rquesextensionschema, AuthHelper.getuserid()) if result.success == True: asyncio.create_task(eventservice().posteventforextension( ministryrequestid, result.identifier, AuthHelper.getuserid(), AuthHelper.getusername(), "add")) return { 'status': result.success, 'message': result.message, 'id': result.identifier }, 200 except KeyError as err: return {'status': False, 'message': err.messages}, 400 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def post(requestid=None): try: updaterequest = request.get_json() userid = updaterequest['assignedTo'] username = '******' if int(requestid) and str(requestid) == "-1": result = rawrequestservice().saverawrequest( updaterequest, "intake", userid, notes="Request submitted from FOI Flow") asyncio.create_task(eventservice().postevent( result.identifier, "rawrequest", userid, username, False)) return { 'status': result.success, 'message': result.message, 'id': result.identifier }, 200 except ValueError: return {'status': 500, 'message': INVALID_REQUEST_ID}, 500 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def createrequestextensionversion(self, foirequestid, ministryrequestid, extensionid, extensionschema, userid, username): updatedduedate = None ministryversion = self.__getversionforrequest(ministryrequestid) extension = FOIRequestExtension.getextension(extensionid) extensionversion = extension['version'] prevstatus = extension["extensionstatusid"] currentstatus = extensionschema["extensionstatusid"] isstatuschangedfromapproved = self.__isstatuschangedfromapproved( prevstatus, currentstatus) if isstatuschangedfromapproved == True: # gets the latest approved request approvedextension = self.getlatestapprovedrequest( extensionid, ministryrequestid, ministryversion) # gets the latest approved due date if any else gets the original due date updatedduedate = self.getlatestapprovedduedate( prevstatus, ministryrequestid, approvedextension) isdeletedocument = self.__isdeletedocument(isstatuschangedfromapproved, extensionid, extensionversion) if isdeletedocument == True: self.deletedocuments(extensionid, extensionversion, ministryrequestid, userid) #copyextension has the updated extension with data passed from FE with the new version of extension updatedextension = self.__copyextensionproperties( extension, extensionschema, extensionversion) # if current state is approved then gets the current extended due date extendedduedate = self.getextendedduedate(updatedextension) extensionresult = FOIRequestExtension.createextensionversion( ministryrequestid, ministryversion, updatedextension, userid) # save documents if it is part of current extension (update to the ministrydocuments table and extensiondocumentmapping table) if 'documents' in updatedextension and updatedextension[ 'documents'] and updatedextension['extensionstatusid'] != 1: self.saveextensiondocument(updatedextension['documents'], ministryrequestid, userid, extensionid) # Post event for system generated comments asyncio.create_task(eventservice().posteventforextension( ministryrequestid, extensionid, userid, username, "modify")) # updates the duedate to extendedduedate or updatedduedate # new ministry, extension, extensionmapping and document version gets created if extensionresult.success == True and ( isstatuschangedfromapproved == True or updatedextension['extensionstatusid'] == 2): ministryrequestschema = { "duedate": extendedduedate if extendedduedate else updatedduedate } requestservice().saveministryrequestversion( ministryrequestschema, foirequestid, ministryrequestid, userid) return extensionresult
def post(requestid=None): try: updaterequest = request.get_json() if int(requestid) and str(requestid) != "-1": status = rawrequestservice().getstatus(updaterequest) rawrequest = rawrequestservice().getrawrequest(requestid) requestdata = getparams(updaterequest) assigneegroup = requestdata['assigneegroup'] assignee = requestdata['assignee'] assigneefirstname = requestdata['assigneefirstname'] assigneemiddlename = requestdata['assigneemiddlename'] assigneelastname = requestdata['assigneelastname'] result = rawrequestservice().saverawrequestversion( updaterequest, requestid, assigneegroup, assignee, status, AuthHelper.getuserid(), AuthHelper.getusername(), AuthHelper.isministrymember(), assigneefirstname, assigneemiddlename, assigneelastname) if result.success == True: asyncio.create_task( rawrequestservice().posteventtoworkflow( result.identifier, rawrequest['wfinstanceid'], updaterequest, status)) return { 'status': result.success, 'message': result.message }, 200 elif int(requestid) and str(requestid) == "-1": result = rawrequestservice().saverawrequest( updaterequest, "intake", AuthHelper.getuserid(), notes="Request submitted from FOI Flow") asyncio.create_task(eventservice().postevent( result.identifier, "rawrequest", AuthHelper.getuserid(), AuthHelper.getusername(), AuthHelper.isministrymember())) return { 'status': result.success, 'message': result.message, 'id': result.identifier }, 200 except ValueError: return {'status': 500, 'message': INVALID_REQUEST_ID}, 500 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def post(): try: reminderresponse = eventservice().postreminderevent() respcode = 200 if reminderresponse.success == True else 500 return { 'status': reminderresponse.success, 'message': reminderresponse.message, 'id': reminderresponse.identifier }, respcode except KeyError as err: return {'status': False, 'message': err.messages}, 400 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def post(foirequestid, foiministryrequestid, usertype): """ POST Method for capturing FOI requests before processing""" try: if usertype != "ministry": return {'status': False, 'message': 'Bad Request'}, 400 request_json = request.get_json() ministryrequestschema = FOIRequestMinistrySchema().load( request_json) result = requestservice().saveministryrequestversion( ministryrequestschema, foirequestid, foiministryrequestid, AuthHelper.getuserid()) if result.success == True: metadata = json.dumps({ "id": result.identifier, "ministries": result.args[0] }) asyncio.create_task(requestservice().posteventtoworkflow( foiministryrequestid, result.args[1], ministryrequestschema, json.loads(metadata), "ministry")) asyncio.create_task(eventservice().postevent( foiministryrequestid, "ministryrequest", AuthHelper.getuserid(), AuthHelper.getusername(), AuthHelper.isministrymember())) return { 'status': result.success, 'message': result.message, 'id': result.identifier, 'ministryRequests': result.args[0] }, 200 else: return { 'status': False, 'message': EXCEPTION_MESSAGE_NOTFOUND_REQUEST, 'id': foirequestid }, 404 except ValidationError as err: return {'status': False, 'message': err.messages}, 400 except KeyError as err: return {'status': False, 'message': err.messages}, 400 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def post(): try: requestjson = request.get_json() rawrqcommentschema = FOIRawRequestCommentSchema().load(requestjson) result = commentservice().createrawrequestcomment( rawrqcommentschema, AuthHelper.getuserid()) if result.success == True: asyncio.create_task(eventservice().postcommentevent( result.identifier, "rawrequest", AuthHelper.getuserid())) return { 'status': result.success, 'message': result.message, 'id': result.identifier }, 200 except KeyError as err: return {'status': False, 'message': err.messages}, 400 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def post(requestid, ministryrequestid, extensionid): try: if (AuthHelper.isministrymember() == False): result = extensionservice().deleterequestextension( requestid, ministryrequestid, extensionid, AuthHelper.getuserid()) if result.success == True: asyncio.create_task(eventservice().posteventforextension( ministryrequestid, extensionid, AuthHelper.getuserid(), AuthHelper.getusername(), "delete")) return { 'status': result.success, 'message': result.message, 'id': result.identifier }, 200 except KeyError as err: return {'status': False, 'message': err.messages}, 400 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500