Beispiel #1
0
def components(request, id=None, type=None):
    '''
    Standard API endpoint for components
    '''
    api = API(request)
    if api.get:
        filters = {}
        if type:
            type = type[:-1] # Remove the trailing 's' that is in the URL
            filters['type'] = type
        components = Component.list(
            user=request.user,
            address=api.optional('address'),
            published=api.optional('published', True, lambda value: bool(int(value))),
            filters=filters,
            sort=api.optional('sort', 'id')
        )
        return api.respond(
            data=components,
            paginate=25
        )
    elif api.post:
        api.authenticated_or_raise()
        component = Component.create_one(
            user=request.user,
            address=api.required('address'),
            type=api.required('type'),
        )
        return api.respond(
            data=component
        )
    else:
        api.raise_method_not_allowed()
Beispiel #2
0
def explore(request):
    '''
    Explore components
    '''
    components = Component.list(
        user=request.user,
        published=True,
        sort='-id'
    )
    return render(request, 'explore.html', {
        'components': components
    })