Exemple #1
0
    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()
Exemple #2
0
    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})