aboutsummaryrefslogtreecommitdiff
path: root/src/serializers
diff options
context:
space:
mode:
Diffstat (limited to 'src/serializers')
-rw-r--r--src/serializers/.keep0
-rw-r--r--src/serializers/base_serializer.cr7
-rw-r--r--src/serializers/error_serializer.cr14
-rw-r--r--src/serializers/user_serializer.cr8
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