Skip to main content

daravel_teorion 1.13.0 copy "daravel_teorion: ^1.13.0" to clipboard
daravel_teorion: ^1.13.0 copied to clipboard

Request-driven query filters for Daravel with whitelists for filters, scopes, relations and sorts, the request format of laravel-teorion.

example/main.dart

import 'package:daravel/daravel.dart';
import 'package:daravel_teorion/daravel_teorion.dart';

final class Post extends Model {
  static final ModelDefinition<Post> definition = ModelDefinition<Post>(
    table: 'posts',
    factory: Post.new,
  );

  @override
  ModelDefinition<Post> get modelDefinition => Post.definition;
}

final class PostQueryFilter extends QueryFilter<Post> {
  @override
  Map<String, Filter> get filters => {'q': Filter.like('title')};

  @override
  List<String> get allowedSorts => ['id', 'title'];
}

/// `GET /api/posts?q=dart&sort=-id&is_paginate=1`.
Application createApp() =>
    Application.configure(basePath: '.')
        .withQueryFilters({Post: PostQueryFilter.new})
        .withRouting(
          api: (router) => router.get(
            '/posts',
            (request) => Post.definition.query().filterAndPaginate(request),
          ),
        )
        .create();

Future<void> main() async => Application.serveWith(createApp);
0
likes
160
points
--
downloads

Documentation

Documentation
API reference

Publisher

verified publisherframework.daravel.dev

Weekly Downloads

Request-driven query filters for Daravel with whitelists for filters, scopes, relations and sorts, the request format of laravel-teorion.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#query #filter #api #server #backend

License

MIT (license)

Dependencies

crypto, daravel

More

Packages that depend on daravel_teorion