コード例 #1
0
    def handle_post(self, request, user, *args, **kwargs):
        """Treat requests Post to search ambiente_p44_txt of  Environment VIP by finalidade_txt and cliente_txt

        URL: environment-vip/get/ambiente_p44_txt/
        """

        try:

            self.log.info(
                'Search ambiente_p44_txt Environment VIP by finalidade_txt and cliente_txt'
            )

            # User permission
            if not has_perm(user, AdminPermission.ENVIRONMENT_VIP,
                            AdminPermission.READ_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Load XML data
            xml_map, attrs_map = loads(request.raw_post_data)

            # XML data format
            networkapi_map = xml_map.get('networkapi')
            if networkapi_map is None:
                return self.response_error(
                    3,
                    u'There is no value to the networkapi tag of XML request.')

            environmentvip_map = networkapi_map.get('vip')
            if environmentvip_map is None:
                return self.response_error(
                    3, u'There is no value to the vip tag of XML request.')

            # Get XML data
            finalidade = environmentvip_map.get('finalidade_txt')
            cliente_txt = environmentvip_map.get('cliente_txt')

            # finalidade_txt can NOT be greater than 50
            if not is_valid_string_maxsize(
                    finalidade, 50, True) or not is_valid_string_minsize(
                        finalidade, 3, True) or not is_valid_text(finalidade):
                self.log.error(
                    u'Parameter finalidade_txt is invalid. Value: %s.',
                    finalidade)
                raise InvalidValueError(None, 'finalidade_txt', finalidade)

            # cliente_txt can NOT be greater than 50
            if not is_valid_string_maxsize(
                    cliente_txt, 50, True) or not is_valid_string_minsize(
                        cliente_txt, 3,
                        True) or not is_valid_text(cliente_txt):
                self.log.error(u'Parameter cliente_txt is invalid. Value: %s.',
                               cliente_txt)
                raise InvalidValueError(None, 'cliente_txt', cliente_txt)

            environmentVip = EnvironmentVip()

            evip_values = environmentVip.list_all_ambientep44_by_finality_and_cliente(
                finalidade, cliente_txt)

            evips = dict()
            evips_list = []

            for evip in evip_values:
                evips['id'] = evip.id
                evips['finalidade_txt'] = finalidade
                evips['cliente_txt'] = cliente_txt
                evips['ambiente_p44'] = evip.ambiente_p44_txt
                evips['description'] = evip.description
                evips_list.append(evips)
                evips = dict()

            return self.response(dumps_networkapi({'ambiente_p44':
                                                   evips_list}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)
    def handle_post(self, request, user, *args, **kwargs):
        """Treat requests Post to search ambiente_p44_txt of  Environment VIP by finalidade_txt and cliente_txt

        URL: environment-vip/get/ambiente_p44_txt/
        """

        try:

            self.log.info(
                "Search ambiente_p44_txt Environment VIP by finalidade_txt and cliente_txt")

            # User permission
            if not has_perm(user, AdminPermission.ENVIRONMENT_VIP, AdminPermission.READ_OPERATION):
                self.log.error(
                    u'User does not have permission to perform the operation.')
                raise UserNotAuthorizedError(None)

            # Load XML data
            xml_map, attrs_map = loads(request.raw_post_data)

            # XML data format
            networkapi_map = xml_map.get('networkapi')
            if networkapi_map is None:
                return self.response_error(3, u'There is no value to the networkapi tag of XML request.')

            environmentvip_map = networkapi_map.get('vip')
            if environmentvip_map is None:
                return self.response_error(3, u'There is no value to the vip tag of XML request.')

            # Get XML data
            finalidade = environmentvip_map.get('finalidade_txt')
            cliente_txt = environmentvip_map.get('cliente_txt')

            # finalidade_txt can NOT be greater than 50
            if not is_valid_string_maxsize(finalidade, 50, True) or not is_valid_string_minsize(finalidade, 3, True) or not is_valid_text(finalidade):
                self.log.error(
                    u'Parameter finalidade_txt is invalid. Value: %s.', finalidade)
                raise InvalidValueError(None, 'finalidade_txt', finalidade)

            # cliente_txt can NOT be greater than 50
            if not is_valid_string_maxsize(cliente_txt, 50, True) or not is_valid_string_minsize(cliente_txt, 3, True) or not is_valid_text(cliente_txt):
                self.log.error(
                    u'Parameter cliente_txt is invalid. Value: %s.', cliente_txt)
                raise InvalidValueError(None, 'cliente_txt', cliente_txt)

            environmentVip = EnvironmentVip()

            evip_values = environmentVip.list_all_ambientep44_by_finality_and_cliente(
                finalidade, cliente_txt)

            evips = dict()
            evips_list = []

            for evip in evip_values:
                evips['id'] = evip.id
                evips['finalidade_txt'] = finalidade
                evips['cliente_txt'] = cliente_txt
                evips['ambiente_p44'] = evip.ambiente_p44_txt
                evips['description'] = evip.description
                evips_list.append(evips)
                evips = dict()

            return self.response(dumps_networkapi({'ambiente_p44': evips_list}))

        except InvalidValueError, e:
            return self.response_error(269, e.param, e.value)