Exemple #1
0
    def _generate_route_objects(self, route_schema, namespace):
        check_route_name_conflict(namespace)

        self.emit()
        self.emit('/// Stone Route Objects')
        self.emit()
        for route in namespace.routes:
            var_name = fmt_func(route.name, route.version)
            with self.block('static let {} = Route('.format(var_name),
                            delim=(None, None), after=')'):
                self.emit('name: \"{}\",'.format(route.name))
                self.emit('version: {},'.format(route.version))
                self.emit('namespace: \"{}\",'.format(namespace.name))
                self.emit('deprecated: {},'.format('true' if route.deprecated
                                                   is not None else 'false'))
                self.emit('argSerializer: {},'.format(fmt_serial_obj(route.arg_data_type)))
                self.emit('responseSerializer: {},'.format(fmt_serial_obj(route.result_data_type)))
                self.emit('errorSerializer: {},'.format(fmt_serial_obj(route.error_data_type)))
                attrs = []
                for field in route_schema.fields:
                    attr_key = field.name
                    attr_val = ("\"{}\"".format(route.attrs.get(attr_key))
                            if route.attrs.get(attr_key) else 'nil')
                    attrs.append('\"{}\": {}'.format(attr_key, attr_val))

                self.generate_multiline_list(
                    attrs, delim=('attrs: [', ']'), compact=True)
Exemple #2
0
    def _generate_route_objects(self, route_schema, namespace):
        check_route_name_conflict(namespace)

        self.emit()
        self.emit('/// Stone Route Objects')
        self.emit()
        for route in namespace.routes:
            var_name = fmt_func(route.name, route.version)
            with self.block('static let {} = Route('.format(var_name),
                            delim=(None, None),
                            after=')'):
                self.emit('name: \"{}\",'.format(route.name))
                self.emit('version: {},'.format(route.version))
                self.emit('namespace: \"{}\",'.format(namespace.name))
                self.emit('deprecated: {},'.format(
                    'true' if route.deprecated is not None else 'false'))
                self.emit('argSerializer: {},'.format(
                    fmt_serial_obj(route.arg_data_type)))
                self.emit('responseSerializer: {},'.format(
                    fmt_serial_obj(route.result_data_type)))
                self.emit('errorSerializer: {},'.format(
                    fmt_serial_obj(route.error_data_type)))
                attrs = []
                for field in route_schema.fields:
                    attr_key = field.name
                    attr_val = ("\"{}\"".format(route.attrs.get(attr_key))
                                if route.attrs.get(attr_key) else 'nil')
                    attrs.append('\"{}\": {}'.format(attr_key, attr_val))

                self.generate_multiline_list(attrs,
                                             delim=('attrs: [', ']'),
                                             compact=True)
Exemple #3
0
    def _generate_routes(self, namespace):
        check_route_name_conflict(namespace)

        ns_class = fmt_class(namespace.name)
        self.emit_raw(stone_warning)
        self.emit('/// Routes for the {} namespace'.format(namespace.name))

        with self.block('open class {}Routes'.format(ns_class)):
            self.emit('public let client: {}'.format(self.args.transport_client_name))
            args = [('client', '{}'.format(self.args.transport_client_name))]

            with self.function_block('init', self._func_args(args)):
                self.emit('self.client = client')

            self.emit()

            for route in namespace.routes:
                self._generate_route(namespace, route)
Exemple #4
0
    def _generate_routes(self, namespace):
        check_route_name_conflict(namespace)

        ns_class = fmt_class(namespace.name)
        self.emit_raw(stone_warning)
        self.emit('/// Routes for the {} namespace'.format(namespace.name))

        with self.block('open class {}Routes'.format(ns_class)):
            self.emit('open let client: {}'.format(self.args.transport_client_name))
            args = [('client', '{}'.format(self.args.transport_client_name))]

            with self.function_block('init', self._func_args(args)):
                self.emit('self.client = client')

            self.emit()

            for route in namespace.routes:
                self._generate_route(namespace, route)