Exemplo n.º 1
0
    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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 def post():
     """ POST Method for capturing FOI requests before processing"""
     try:
         request_json = request.get_json()
         foirequestschema = FOIRequestWrapperSchema().load(request_json)
         assignedgroup = request_json[
             'assignedGroup'] if 'assignedGroup' in foirequestschema else None
         assignedto = request_json[
             'assignedTo'] if 'assignedTo' in foirequestschema else None
         assignedtofirstname = request_json[
             "assignedToFirstName"] if request_json.get(
                 "assignedToFirstName") != None else None
         assignedtomiddlename = request_json[
             "assignedToMiddleName"] if request_json.get(
                 "assignedToMiddleName") != None else None
         assignedtolastname = request_json[
             "assignedToLastName"] if request_json.get(
                 "assignedToLastName") != None else None
         rawresult = rawrequestservice().saverawrequestversion(
             request_json, request_json['id'], assignedgroup, assignedto,
             "Archived", AuthHelper.getuserid(), AuthHelper.getusername(),
             AuthHelper.isministrymember(), assignedtofirstname,
             assignedtomiddlename, assignedtolastname)
         if rawresult.success == True:
             result = requestservice().saverequest(foirequestschema,
                                                   AuthHelper.getuserid())
             if result.success == True:
                 requestservice().copywatchers(request_json['id'],
                                               result.args[0],
                                               AuthHelper.getuserid())
                 requestservice().copycomments(request_json['id'],
                                               result.args[0],
                                               AuthHelper.getuserid())
                 requestservice().copydocuments(request_json['id'],
                                                result.args[0],
                                                AuthHelper.getuserid())
                 requestservice().postopeneventtoworkflow(
                     result.identifier, rawresult.args[0], request_json,
                     result.args[0])
         return {
             'status': result.success,
             'message': result.message,
             'id': result.identifier,
             'ministryRequests': result.args[0]
         }, 200
     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
Exemplo n.º 4
0
 def get(ministryrequestid):
     try:
         result = watcherservice().getministryrequestwatchers(
             ministryrequestid, AuthHelper.isministrymember())
         return json.dumps(result), 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
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
 def post(requestid, ministryrequestid, extensionid):
     try:
         requestjson = request.get_json()
         rquesextensionschema = FOIRequestExtensionSchema().load(
             requestjson)
         if (AuthHelper.isministrymember() == False):
             result = extensionservice().createrequestextensionversion(
                 requestid, ministryrequestid, extensionid,
                 rquesextensionschema, AuthHelper.getuserid(),
                 AuthHelper.getusername())
             if result.success == True:
                 # posteventforextension moved to createrequestextensionversion to generate the comments before updating the ministry table with new due date
                 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
Exemplo n.º 8
0
 def get(requestid, requesttype): 
     if requesttype != "ministryrequest" and requesttype != "rawrequest":
         return {'status': False, 'message':'Bad Request'}, 400          
     try:
         result = documentservice().getrequestdocumentsbyrole(requestid, requesttype, AuthHelper.isministrymember())
         return json.dumps(result), 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