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()
def explore(request): ''' Explore components ''' components = Component.list( user=request.user, published=True, sort='-id' ) return render(request, 'explore.html', { 'components': components })