Skip to content

Commit

Permalink
feat: Rework code structure (#19)
Browse files Browse the repository at this point in the history
* some refactoring

* setup example swagger documentation route

* simplify swagger sample

* rework code

* fix failing tests
  • Loading branch information
codekeyz authored Jan 26, 2024
1 parent 8a26967 commit 190fbbf
Show file tree
Hide file tree
Showing 18 changed files with 248 additions and 274 deletions.
9 changes: 3 additions & 6 deletions bin/backend.dart
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import 'package:yaroorm/yaroorm.dart';
import 'package:backend/app/app.dart';
import 'package:backend/backend.dart';

import '../config/app.dart' as app;
import '../config/database.dart' as db;
import '../database/config.dart' as orm;
import 'backend.reflectable.dart';

final blogApp = App(app.config);

void main(List<String> arguments) async {
initializeReflectable();

DB.init(db.config);
DB.init(orm.config);

await blogApp.bootstrap();
}
14 changes: 4 additions & 10 deletions bin/tools/migrator.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import 'package:yaroorm/migration/cli.dart';
import 'package:yaroorm/yaroorm.dart';

import '../../config/database.dart' as db;
// ignore: depend_on_referenced_packages
import 'package:yaroo_cli/orm/runner.dart';

import '../../database/config.dart' as orm;
import 'migrator.reflectable.dart';

export 'package:backend/src/models/models.dart';

void main(List<String> args) async {
if (args.isEmpty) return print('Nothing to do here');

initializeReflectable();

DB.init(db.config);

await MigratorCLI.processCmd(args[0], cmdArguments: args.sublist(1));
await OrmCLIRunner.start(args, orm.config);
}
107 changes: 0 additions & 107 deletions config/app.dart

This file was deleted.

32 changes: 0 additions & 32 deletions config/database.dart

This file was deleted.

28 changes: 28 additions & 0 deletions database/config.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:path/path.dart' as path;
import 'package:yaroo/yaroo.dart';
import 'package:yaroorm/yaroorm.dart';

import './migrations/create_articles_table.dart';
import './migrations/create_users_table.dart';

final config = YaroormConfig(
env<String>('DB_CONNECTION', 'test_db'),
connections: [
DatabaseConnection(
'test_db',
DatabaseDriverType.sqlite,
database: env('DB_DATABASE', path.absolute('database', 'db.sqlite')),
),
DatabaseConnection(
'mysql',
DatabaseDriverType.mysql,
port: env<int>('DB_PORT', 0),
host: env<String>('DB_HOST', ''),
username: env<String>('DB_USERNAME', ''),
password: env<String>('DB_PASSWORD', ''),
database: env<String>('DB_DATABASE', ''),
secure: true,
),
],
migrations: [CreateUsersTable(), CreateArticlesTable()],
);
12 changes: 0 additions & 12 deletions lib/app/app.dart

This file was deleted.

29 changes: 0 additions & 29 deletions lib/app/http/kernel.dart

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ class CoreMiddleware extends Middleware {
next();
}

_webMdw = loggerMdw.chain(cookieParserMdw);
if (app.config.environment == 'development') {
_webMdw = loggerMdw.chain(cookieParserMdw);
} else {
_webMdw = cookieParserMdw;
}
}

@override
Expand Down
2 changes: 2 additions & 0 deletions lib/app/middlewares/middlewares.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export 'api_auth_middleware.dart';
export 'core_middleware.dart';
10 changes: 5 additions & 5 deletions lib/app/providers/provide_routes.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'dart:async';

import 'package:backend/backend.dart';
import 'package:yaroo/http/http.dart';
import 'package:yaroo/yaroo.dart';

import '../../src/controllers/controllers.dart';
import '../routes/api.dart' as api;
import '../routes/web.dart' as web;

Expand All @@ -15,24 +15,24 @@ class RouteServiceProvider extends ServiceProvider {
/*|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------*/
Route.group('api').routes([
Route.group('api', [
Route.post('/auth/login', (AuthController, #login)),
Route.post('/auth/register', (AuthController, #register)),

Route.get('/users/<userId>', (UserController, #show)),

/// get articles and detail without auth
Route.group('articles').routes([
Route.group('articles', [
Route.get('/', (ArticleController, #index)),
Route.get('/<articleId>', (ArticleController, #show)),
]),
]),
Route.middleware('auth:api').group('api').routes(api.routes),
Route.middleware('api:auth').group('api', api.routes),

/*|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------*/
Route.middleware('web').group('/').routes(web.routes),
Route.middleware('web').group('/', web.routes),
],
);
}
Expand Down
4 changes: 2 additions & 2 deletions lib/app/routes/api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import 'package:yaroo/yaroo.dart';

List<RouteDefinition> routes = [
/// Users
Route.group('users').routes([
Route.group('users', [
Route.get('/', (UserController, #index)),
Route.get('/me', (UserController, #currentUser)),
]),

/// Articles
Route.group('articles').routes([
Route.group('articles', [
Route.post('/', (ArticleController, #create)),
Route.put('/<articleId>', (ArticleController, #update)),
Route.delete('/<articleId>', (ArticleController, #delete)),
Expand Down
2 changes: 1 addition & 1 deletion lib/app/routes/web.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ import 'package:yaroo/http/http.dart';
import 'package:yaroo/yaroo.dart';

final routes = <RouteDefinition>[
Route.handler(HTTPMethod.ALL, '*', (_, req, res) => res.ok('hey 🚀')),
Route.route(HTTPMethod.GET, '/', (req, res) => res.ok('Hello World 🤘')),
];
Loading

0 comments on commit 190fbbf

Please sign in to comment.