Пример #1
0
    Checks if a given optional waypoint id is an integer,
    if a given optional route id is an integer.
    """
    check_get_for_integer_property(request, 'w', False)
    check_get_for_integer_property(request, 'r', False)


def adapt_schema_for_activities(activities, field_list_type):
    """Get the schema for a set of activities.
    `field_list_type` should be either "fields" or "listing".
    """
    fields = get_all_fields(fields_outing, activities, field_list_type)
    return restrict_schema(schema_outing, fields)


schema_adaptor = make_schema_adaptor(adapt_schema_for_activities, 'activities',
                                     'fields')
listing_schema_adaptor = make_schema_adaptor(adapt_schema_for_activities,
                                             'activities', 'listing')


@resource(collection_path='/outings',
          path='/outings/{id}',
          cors_policy=cors_policy)
class OutingRest(DocumentRest):
    @view(validators=[
        validate_pagination, validate_preferred_lang_param,
        validate_filter_params
    ])
    def collection_get(self):
        custom_filter = None
        if self.request.validated.get('w'):
Пример #2
0
                return

    # no association found
    request.errors.add(
        'body', 'main_waypoint_id', 'no association for the main waypoint')


def adapt_schema_for_activities(activities, field_list_type):
    """Get the schema for a set of activities.
    `field_list_type` should be either "fields" or "listing".
    """
    fields = get_all_fields(fields_route, activities, field_list_type)
    return restrict_schema(schema_route, fields)


schema_adaptor = make_schema_adaptor(
    adapt_schema_for_activities, 'activities', 'fields')
listing_schema_adaptor = make_schema_adaptor(
    adapt_schema_for_activities, 'activities', 'listing')


@resource(collection_path='/routes', path='/routes/{id}',
          cors_policy=cors_policy)
class RouteRest(DocumentRest):

    @view(validators=[validate_pagination, validate_preferred_lang_param])
    def collection_get(self):
        return self._collection_get(
            Route, schema_route, ROUTE_TYPE, clazz_locale=RouteLocale,
            adapt_schema=listing_schema_adaptor)

    @view(validators=[validate_id, validate_lang_param])
Пример #3
0
    validate_associations, WAYPOINT_TYPE, True)
validate_associations_update = functools.partial(
    validate_associations, WAYPOINT_TYPE, False)


@lru_cache(maxsize=None)
def adapt_schema_for_type(waypoint_type, field_list_type):
    """Get the schema for a waypoint type.
    `field_list_type` should be either "fields" or "listing".
    All schemas are cached using memoization with @lru_cache.
    """
    fields = fields_waypoint.get(waypoint_type).get(field_list_type)
    return restrict_schema(schema_waypoint, fields)


schema_adaptor = make_schema_adaptor(
    adapt_schema_for_type, 'waypoint_type', 'fields')
listing_schema_adaptor = make_schema_adaptor(
    adapt_schema_for_type, 'waypoint_type', 'listing')


@resource(collection_path='/waypoints', path='/waypoints/{id}',
          cors_policy=cors_policy)
class WaypointRest(DocumentRest):

    @view(validators=[validate_pagination, validate_preferred_lang_param])
    def collection_get(self):
        """
        Get a list of documents, optionally matching search filters.
        If no search filters are given, the documents are directly queried
        from the database. If not, ElasticSearch is used to find the documents
        that match the filters.
Пример #4
0
                                                 WAYPOINT_TYPE, True)
validate_associations_update = functools.partial(validate_associations,
                                                 WAYPOINT_TYPE, False)


@lru_cache(maxsize=None)
def adapt_schema_for_type(waypoint_type, field_list_type):
    """Get the schema for a waypoint type.
    `field_list_type` should be either "fields" or "listing".
    All schemas are cached using memoization with @lru_cache.
    """
    fields = fields_waypoint.get(waypoint_type).get(field_list_type)
    return restrict_schema(schema_waypoint, fields)


schema_adaptor = make_schema_adaptor(adapt_schema_for_type, 'waypoint_type',
                                     'fields')
listing_schema_adaptor = make_schema_adaptor(adapt_schema_for_type,
                                             'waypoint_type', 'listing')


@resource(collection_path='/waypoints',
          path='/waypoints/{id}',
          cors_policy=cors_policy)
class WaypointRest(DocumentRest):
    @view(validators=[validate_pagination, validate_preferred_lang_param])
    def collection_get(self):
        """
        Get a list of documents, optionally matching search filters.
        If no search filters are given, the documents are directly queried
        from the database. If not, ElasticSearch is used to find the documents
        that match the filters.