Skip to content

Commit

Permalink
Merge pull request #85 from javad-zobeidi/dev
Browse files Browse the repository at this point in the history
Fix route  issue
  • Loading branch information
javad-zobeidi authored Jun 22, 2024
2 parents 966b037 + 0e27fb4 commit 2cd6945
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 27 deletions.
4 changes: 3 additions & 1 deletion lib/src/route/route_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,11 @@ RouteData? _getMatchRoute(String inputRoute, String method, String? domain) {
String routePath = route.path
.trim()
.replaceFirst(RegExp(r'^/'), '')
.replaceFirst(RegExp(r'/$'), '');
.replaceAll('//', '/')
.replaceFirst(RegExp(r'/$'), '/');
inputRoute = inputRoute
.replaceFirst(RegExp(r'^/'), '')
.replaceAll('//', '/')
.replaceFirst(RegExp(r'/$'), '');

if (route.prefix != null) {
Expand Down
57 changes: 31 additions & 26 deletions lib/src/route/router.dart
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ class Router {
/// Adds a prefix to the last added route.
Router prefix([String? prefix]) {
if (prefix != null) {
String basePath = _routes.last.path;
String basePath = _routes.last.path.startsWith('/')
? _routes.last.path.replaceFirst('/', '')
: _routes.last.path;
_routes.last.path =
prefix.endsWith("/") ? "$prefix$basePath" : "$prefix/$basePath";
}
Expand Down Expand Up @@ -191,48 +193,51 @@ class Router {
/// - edit
/// - update
/// - destroy
static Router resource(String path, dynamic action) {
Router router = Router();
static void resource(
String path,
dynamic action, {
String? prefix,
List<Middleware>? middleware,
String? domain,
}) {
Router.get(path, action.index)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix);
.middleware(middleware)
.domain(domain)
.prefix(prefix);

Router.get("$path/create", action.create)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix);
.middleware(middleware)
.domain(domain)
.prefix(prefix);

Router.post(path, action.store)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix);
.middleware(middleware)
.domain(domain)
.prefix(prefix);

Router.get("$path/{id}", action.show)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix)
.middleware(middleware)
.domain(domain)
.prefix(prefix)
.whereInt('id');

Router.get("$path/{id}/edit", action.edit)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix)
.middleware(middleware)
.domain(domain)
.prefix(prefix)
.whereInt('id');

Router.put("$path/{id}", action.update)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix)
.middleware(middleware)
.domain(domain)
.prefix(prefix)
.whereInt('id');

Router.delete("$path/{id}", action.destroy)
.middleware(router._groupMiddleware)
.domain(router._groupDomain)
.prefix(router._groupPrefix)
.middleware(middleware)
.domain(domain)
.prefix(prefix)
.whereInt('id');

return router;
}

/// Adds a websocket route.
Expand Down

0 comments on commit 2cd6945

Please sign in to comment.