diff options
Diffstat (limited to 'src/serializers')
-rw-r--r-- | src/serializers/.keep | 0 | ||||
-rw-r--r-- | src/serializers/base_serializer.cr | 7 | ||||
-rw-r--r-- | src/serializers/error_serializer.cr | 14 | ||||
-rw-r--r-- | src/serializers/user_serializer.cr | 8 |
4 files changed, 29 insertions, 0 deletions
diff --git a/src/serializers/.keep b/src/serializers/.keep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/serializers/.keep diff --git a/src/serializers/base_serializer.cr b/src/serializers/base_serializer.cr new file mode 100644 index 0000000..3ad0a66 --- /dev/null +++ b/src/serializers/base_serializer.cr @@ -0,0 +1,7 @@ +abstract class BaseSerializer < Lucky::Serializer + def self.for_collection(collection : Enumerable, *args, **named_args) + collection.map do |object| + new(object, *args, **named_args) + end + end +end diff --git a/src/serializers/error_serializer.cr b/src/serializers/error_serializer.cr new file mode 100644 index 0000000..21a53aa --- /dev/null +++ b/src/serializers/error_serializer.cr @@ -0,0 +1,14 @@ +# This is the default error serializer generated by Lucky. +# Feel free to customize it in any way you like. +class ErrorSerializer < BaseSerializer + def initialize( + @message : String, + @details : String? = nil, + @param : String? = nil # so you can track which param (if any) caused the problem + ) + end + + def render + {message: @message, param: @param, details: @details} + end +end diff --git a/src/serializers/user_serializer.cr b/src/serializers/user_serializer.cr new file mode 100644 index 0000000..1a86f14 --- /dev/null +++ b/src/serializers/user_serializer.cr @@ -0,0 +1,8 @@ +class UserSerializer < BaseSerializer + def initialize(@user : User) + end + + def render + {email: @user.email} + end +end |