def update_submission(self, submission_gus, request): store = self.getStore() context_desc = Context(store).get_single(request['context_gus']) if not context_desc['selectable_receiver']: request.update({'receivers' : context_desc['receivers'] }) submission_desc = Submission(store).update(submission_gus, request) if submission_desc['finalize']: internaltip_desc = InternalTip(store).new(submission_desc) wbtip_desc = WhistleblowerTip(store).new(internaltip_desc) File(store).switch_reference(submission_desc, internaltip_desc) submission_desc.update({'receipt' : wbtip_desc['receipt']}) else: submission_desc.update({'receipt' : ''}) self.returnData(submission_desc) self.returnCode(202) # Updated return self.prepareRetVals()
def put(self, submission_gus, *uriargs): """ Parameter: submission_gus Request: wbSubmissionDesc Response: wbSubmissionDesc Errors: ContextGusNotFound, InvalidInputFormat, SubmissionFailFields, SubmissionGusNotFound, SubmissionConcluded PUT update the submission and finalize if requested. """ context_iface = Context() try: request = validateMessage(self.request.body, requests.wbSubmissionDesc) context_desc = yield context_iface.get_single(request['context_gus']) submission_iface = Submission() submission_desc = yield submission_iface.update(submission_gus, request) if not context_desc['selectable_receiver']: submission_iface.receivers = context_iface.receivers if submission_desc['finalize']: internaltip_iface = InternalTip() wb_iface = WhistleblowerTip() internaltip_desc = yield internaltip_iface.new(submission_desc) wbtip_desc = yield wb_iface.new(internaltip_desc) submission_desc.update({'receipt' : wbtip_desc['receipt']}) else: submission_desc.update({'receipt' : ''}) self.set_status(202) # Updated # TODO - output processing self.write(submission_desc) except ContextGusNotFound, e: self.set_status(e.http_status) self.write({'error_message': e.error_message, 'error_code' : e.error_code})