예제 #1
0
    def _build_response(self, response_obj: StufMappedResponse, **kwargs):
        """Return single object response by default

        Overridden by StufRestFilterView to create a list of objects

        :param response_obj:
        :param kwargs:
        :return:
        """
        try:
            data = response_obj.get_answer_object()
        except NoStufAnswerException:
            # Return 404, answer section is empty
            return RESTResponse.not_found(detail=self.get_not_found_message(
                **kwargs))
        else:
            return RESTResponse.ok(data)
예제 #2
0
    def get_http_response(self):
        """Returns HTTP response object for given MKS code.

        :return:
        """
        if self.get_berichtcode() != 'Fo02':
            raise UnknownErrorCode()

        responses = {
            # De stuurgegevens zijn onjuist gevuld
            'StUF001': RESTResponse.bad_request(),
            # Het interactieve proces voor het afhandelen van een synchrone vraag is niet actief
            'StUF002': RESTResponse.internal_server_error(),
            # De gevraagde gegevens zijn niet beschikbaar
            'StUF003': RESTResponse.not_found(),
            # De gevraagde sortering wordt niet ondersteund
            'StUF004': RESTResponse.internal_server_error(),
            # Er heeft zich in de StUF-communicatie een time-out voorgedaan
            'StUF005': RESTResponse.internal_server_error(),
            # Het vraagbericht bevat als selectiecriterium zowel de sleutel in het vragende systeem als het ontvangende
            # systeem,
            'StUF006': RESTResponse.internal_server_error(),
            # Het ontvangende systeem ondersteunt niet het bevraagd worden op sleutel in het vragende systeem
            'StUF007': RESTResponse.internal_server_error(),
            # De beantwoording van het vraagbericht vergt meer systeemresources dan het antwoordende systeem
            # beschikbaar heeft
            'StUF008': RESTResponse.internal_server_error(),
            # Het vraagbericht is gericht aan een niet bekend systeem
            'StUF009': RESTResponse.internal_server_error(),
            # Het vragende systeem is niet geautoriseerd voor de gevraagde gegevens
            'StUF010': RESTResponse.forbidden(),
            # De syntax van het StUF-vraagbericht is onjuist
            'StUF011': RESTResponse.internal_server_error(),
            # Het ontvangende systeem ondersteunt niet de afhandeling van asynchrone vraagberichten
            'StUF012': RESTResponse.internal_server_error(),
            # Het vragende systeem is bij het ontvangende systeem niet bekend
            'StUF013': RESTResponse.internal_server_error(),
            # Het zendende systeem is niet geautoriseerd voor de gevraagde combinatie van berichtcode,
            # entiteittype en functie
            'StUF052': RESTResponse.forbidden(),
        }

        try:
            return responses[self.get_error_code()]
        except KeyError:
            raise UnknownErrorCode()
예제 #3
0
 def test_not_found(self):
     with patch("gobstuf.rest.brp.rest_response.request", mock_request):
         result = RESTResponse.not_found()
         self.assertEqual(result['status'], 404)