diff --git a/lib/src/services/users/schema.dart b/lib/src/services/users/schema.dart deleted file mode 100644 index 075296e8..00000000 --- a/lib/src/services/users/schema.dart +++ /dev/null @@ -1 +0,0 @@ -const Map UserSchema = const {}; \ No newline at end of file diff --git a/lib/src/services/users/users.dart b/lib/src/services/users/users.dart index f95c0e0c..d1bed745 100644 --- a/lib/src/services/users/users.dart +++ b/lib/src/services/users/users.dart @@ -1,11 +1,9 @@ import 'package:angel_framework/angel_framework.dart'; import 'package:angel_mongo/angel_mongo.dart'; import 'package:crypto/crypto.dart' show sha256; -import 'package:json_god/json_god.dart' as god; import 'package:mongo_dart/mongo_dart.dart'; -import 'schema.dart'; +import 'package:validate/validate.dart'; -@god.WithSchema(UserSchema) class User extends Model { String email; String username; @@ -35,6 +33,13 @@ configureServer(Db db) { HookedService service = app.service("api/users"); // Place your hooks here! + + service.beforeCreated.listen((HookedServiceEvent e) { + Validate.isKeyInMap("username", e.data); + Validate.isEmail(e.data["email"]); + Validate.isPassword(e.data["password"]); + }); + service.beforeCreated.listen(hashPassword); }; } diff --git a/pubspec.yaml b/pubspec.yaml index a2d005f3..d46603e4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,13 +5,15 @@ author: thosakwe homepage: https://github.com/angel-dart/angel publish_to: none dependencies: - angel_auth: ">=1.0.0-dev <2.0.0" - angel_configuration: ">=1.0.0-dev <2.0.0" - angel_framework: ">=1.0.0-dev <2.0.0" - angel_mongo: ">=1.0.0-dev <2.0.0" - angel_mustache: ">=1.0.0-dev <2.0.0" - angel_static: ">=1.0.0 <1.1.0" - json_god: ">=2.0.0-beta <3.0.0" + angel_auth: ^1.0.0-dev + angel_configuration: ^1.0.0-dev + angel_framework: ^1.0.0-dev + angel_mongo: ^1.0.0-dev + angel_mustache: ^1.0.0-dev + angel_static: ^1.0.0 + json_god: ^2.0.0-beta + validate: ^1.5.2 dev_dependencies: - http: ">=0.11.3 <0.12.0" - test: ">=0.12.13 <0.13.0" \ No newline at end of file + http: ^0.11.3 + grinder: ^0.8.0+2 + test: ^0.12.13 \ No newline at end of file diff --git a/tool/grind.dart b/tool/grind.dart new file mode 100644 index 00000000..707ddd6a --- /dev/null +++ b/tool/grind.dart @@ -0,0 +1,15 @@ +import 'package:grinder/grinder.dart'; + +main(args) => grind(args); + +@Task() +test() => new TestRunner().testAsync(); + +@DefaultTask() +@Depends(test) +build() { + Pub.build(); +} + +@Task() +clean() => defaultClean();