From 9bd87706ce896fc9730ce519bd6e4b3aab5a2edb Mon Sep 17 00:00:00 2001 From: Obadah <oh@sessia.dev> Date: Mon, 5 May 2025 16:00:47 +0300 Subject: [PATCH 1/2] Add user friend --- .gitignore | 5 +++++ fms/UserFriendCreated.go | 21 +++++++++++++++++++++ fms/UserFriendDeleted.go | 19 +++++++++++++++++++ topics.go | 6 ++++++ 4 files changed, 51 insertions(+) create mode 100644 .gitignore create mode 100644 fms/UserFriendCreated.go create mode 100644 fms/UserFriendDeleted.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d7be9e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea +.env +vendor/* +.DS_Store +/cmd/debug/* diff --git a/fms/UserFriendCreated.go b/fms/UserFriendCreated.go new file mode 100644 index 0000000..5d541ec --- /dev/null +++ b/fms/UserFriendCreated.go @@ -0,0 +1,21 @@ +package fms + +import ( + "github.com/go-playground/validator/v10" + "gitlab.sessia.com/sdk/events" +) + +type UserFriendCreated struct { + ID string `json:"id" validate:"required"` + UserID string `json:"userId" validate:"required"` + FriendID string `json:"friendId" validate:"required"` +} + +func (r *UserFriendCreated) GetEventName() string { + return events.EventNameUserFriendCreated +} + +func (r *UserFriendCreated) Validate() error { + validate := validator.New() + return validate.Struct(r) +} diff --git a/fms/UserFriendDeleted.go b/fms/UserFriendDeleted.go new file mode 100644 index 0000000..aac0c1d --- /dev/null +++ b/fms/UserFriendDeleted.go @@ -0,0 +1,19 @@ +package fms + +import ( + "github.com/go-playground/validator/v10" + "gitlab.sessia.com/sdk/events" +) + +type UserFriendDeleted struct { + ID string `json:"id" validate:"required"` +} + +func (r *UserFriendDeleted) GetEventName() string { + return events.EventNameUserFriendDeleted +} + +func (r *UserFriendDeleted) Validate() error { + validate := validator.New() + return validate.Struct(r) +} diff --git a/topics.go b/topics.go index 7ba69b3..0da2f23 100644 --- a/topics.go +++ b/topics.go @@ -40,6 +40,9 @@ const ( EventNameDecisionEvaluated = "DecisionEvaluated" EventNamePostViewed = "PostViewed" + + EventNameUserFriendCreated = "UserFriendCreated" + EventNameUserFriendDeleted = "UserFriendDeleted" ) var topicMap = map[string]string{ @@ -82,6 +85,9 @@ var topicMap = map[string]string{ EventNameDecisionEvaluated: "lms.decision.evaluated", EventNamePostViewed: "cms.post.viewed", + + EventNameUserFriendCreated: "fms.user_friend.created", + EventNameUserFriendDeleted: "fms.user_friend.deleted", } func GetTopicByEventName(eventName string) string { -- GitLab From 6e6eb3695febb8192428d059b29caf0ceaa8ad19 Mon Sep 17 00:00:00 2001 From: Obadah <oh@sessia.dev> Date: Wed, 7 May 2025 09:34:41 +0300 Subject: [PATCH 2/2] add parameters to events in cms fms --- cms/PostCommentCreated.go | 26 ++++++++++++++++++++++++ cms/PostLikeCreated.go | 24 ++++++++++++++++++++++ cms/postCreated.go | 36 +++++++++++++++++++++++++++++++++ fms/UserFriendCreated.go | 8 +++++--- fms/UserFriendDeleted.go | 6 +++++- fms/UserFriendRequestCreated.go | 24 ++++++++++++++++++++++ topics.go | 21 +++++++++++++++++-- 7 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 cms/PostCommentCreated.go create mode 100644 cms/PostLikeCreated.go create mode 100644 cms/postCreated.go create mode 100644 fms/UserFriendRequestCreated.go diff --git a/cms/PostCommentCreated.go b/cms/PostCommentCreated.go new file mode 100644 index 0000000..12f3e15 --- /dev/null +++ b/cms/PostCommentCreated.go @@ -0,0 +1,26 @@ +package cms + +import ( + "github.com/go-playground/validator/v10" + "github.com/google/uuid" + "gitlab.sessia.com/sdk/events" + "time" +) + +type PostCommentCreated struct { + ID uuid.UUID `json:"id" validate:"required"` + CreatorID uuid.UUID `json:"creatorId" validate:"required"` + PostCreatorID uuid.UUID `json:"postCreatorId" validate:"required"` + PostID uuid.UUID `json:"postId" validate:"required"` + Text string `json:"text"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` +} + +func (r *PostCommentCreated) GetEventName() string { + return events.EventNamePostCommentCreated +} + +func (r *PostCommentCreated) Validate() error { + return validator.New().Struct(r) +} diff --git a/cms/PostLikeCreated.go b/cms/PostLikeCreated.go new file mode 100644 index 0000000..a9b1e30 --- /dev/null +++ b/cms/PostLikeCreated.go @@ -0,0 +1,24 @@ +package cms + +import ( + "github.com/go-playground/validator/v10" + "github.com/google/uuid" + "gitlab.sessia.com/sdk/events" + "time" +) + +type PostLikeCreated struct { + ID uuid.UUID `json:"id" validate:"required"` + UserID uuid.UUID `json:"userId" validate:"required"` + PostID uuid.UUID `json:"postId" validate:"required"` + PostCreatorID uuid.UUID `json:"postCreatorId" validate:"required"` + CreatedAt time.Time `json:"createdAt"` +} + +func (r *PostLikeCreated) GetEventName() string { + return events.EventNamePostLikeCreated +} + +func (r *PostLikeCreated) Validate() error { + return validator.New().Struct(r) +} diff --git a/cms/postCreated.go b/cms/postCreated.go new file mode 100644 index 0000000..2b71305 --- /dev/null +++ b/cms/postCreated.go @@ -0,0 +1,36 @@ +package cms + +import ( + "github.com/go-playground/validator/v10" + "github.com/google/uuid" + "gitlab.sessia.com/sdk/events" +) + +type FilesResponse struct { + ID uuid.UUID `json:"id"` + URL string `json:"url"` + Sort int `json:"sort"` + MimeType *string `json:"mimeType"` +} + +type PostCreated struct { + ID uuid.UUID `json:"id" validate:"required"` + Name string `json:"name"` + ShortDescription string `json:"shortDescription"` + Description string `json:"description"` + Files []FilesResponse `json:"files"` + IsActive bool `json:"isActive"` + PublishedAt *string `json:"publishedAt"` + CreatedAt string `json:"createdAt"` + UpdatedAt string `json:"updatedAt"` + CreatorID string `json:"creatorId"` + CommunityID *string `json:"communityId"` +} + +func (r *PostCreated) GetEventName() string { + return events.EventNamePostCreated +} + +func (r *PostCreated) Validate() error { + return validator.New().Struct(r) +} diff --git a/fms/UserFriendCreated.go b/fms/UserFriendCreated.go index 5d541ec..aa5d41c 100644 --- a/fms/UserFriendCreated.go +++ b/fms/UserFriendCreated.go @@ -2,13 +2,15 @@ package fms import ( "github.com/go-playground/validator/v10" + "github.com/google/uuid" "gitlab.sessia.com/sdk/events" ) type UserFriendCreated struct { - ID string `json:"id" validate:"required"` - UserID string `json:"userId" validate:"required"` - FriendID string `json:"friendId" validate:"required"` + ID uuid.UUID `json:"id" validate:"required"` + UserID uuid.UUID `json:"userId" validate:"required"` + FriendID uuid.UUID `json:"friendId" validate:"required"` + AcceptorID uuid.UUID `json:"acceptorId"` // the one who has accepted the friend request } func (r *UserFriendCreated) GetEventName() string { diff --git a/fms/UserFriendDeleted.go b/fms/UserFriendDeleted.go index aac0c1d..b7a6489 100644 --- a/fms/UserFriendDeleted.go +++ b/fms/UserFriendDeleted.go @@ -2,11 +2,15 @@ package fms import ( "github.com/go-playground/validator/v10" + "github.com/google/uuid" "gitlab.sessia.com/sdk/events" ) type UserFriendDeleted struct { - ID string `json:"id" validate:"required"` + ID uuid.UUID `json:"id" validate:"required"` + UserID uuid.UUID `json:"userId" validate:"required"` + FriendID uuid.UUID `json:"friendId" validate:"required"` + DeleterID uuid.UUID `json:"deleterId"` // who decided to delete the friend } func (r *UserFriendDeleted) GetEventName() string { diff --git a/fms/UserFriendRequestCreated.go b/fms/UserFriendRequestCreated.go new file mode 100644 index 0000000..02f2bb5 --- /dev/null +++ b/fms/UserFriendRequestCreated.go @@ -0,0 +1,24 @@ +package fms + +import ( + "github.com/go-playground/validator/v10" + "github.com/google/uuid" + "gitlab.sessia.com/sdk/events" + "time" +) + +type UserFriendRequestCreated struct { + ID uuid.UUID `json:"id" validate:"required"` + CreatedAt time.Time `json:"createdAt"` + SenderID uuid.UUID `json:"senderId" validate:"required"` + ReceiverID uuid.UUID `json:"receiverId" validate:"required"` +} + +func (r *UserFriendRequestCreated) GetEventName() string { + return events.EventNameUserFriendRequestCreated +} + +func (r *UserFriendRequestCreated) Validate() error { + validate := validator.New() + return validate.Struct(r) +} diff --git a/topics.go b/topics.go index 0da2f23..51a8ed1 100644 --- a/topics.go +++ b/topics.go @@ -43,6 +43,15 @@ const ( EventNameUserFriendCreated = "UserFriendCreated" EventNameUserFriendDeleted = "UserFriendDeleted" + + EventNameUserFriendRequestCreated = "UserFriendRequestCreated" + EventNameUserFriendRequestDeleted = "UserFriendRequestDeleted" + + EventNamePostCreated = "PostCreated" + + EventNamePostLikeCreated = "PostLikeCreated" + + EventNamePostCommentCreated = "PostCommentCreated" ) var topicMap = map[string]string{ @@ -86,8 +95,16 @@ var topicMap = map[string]string{ EventNamePostViewed: "cms.post.viewed", - EventNameUserFriendCreated: "fms.user_friend.created", - EventNameUserFriendDeleted: "fms.user_friend.deleted", + EventNamePostLikeCreated: "cms.post_like.created", + + EventNamePostCommentCreated: "cms.post_comment.created", + + EventNamePostCreated: "cms.post.created", + + EventNameUserFriendCreated: "fms.user_friend.created", + EventNameUserFriendDeleted: "fms.user_friend.deleted", + EventNameUserFriendRequestCreated: "fms.user_friend_request.created", + EventNameUserFriendRequestDeleted: "fms.user_friend_request.deleted", } func GetTopicByEventName(eventName string) string { -- GitLab