feat: add notification events handling and MQTT integration
- Implemented notification event publishing with a new NotificationEventPublisher interface. - Created a noopNotificationEventPublisher for testing purposes. - Added functionality to publish notification created events via MQTT. - Introduced a new stream event publisher for handling job logs and updates. - Added database migration for popup_ads table. - Created tests for notification events and popup ads functionality. - Established MQTT connection and publishing helpers for event messages.
This commit is contained in:
@@ -33,6 +33,11 @@ service Admin {
|
||||
rpc CreateAdminAdTemplate(CreateAdminAdTemplateRequest) returns (CreateAdminAdTemplateResponse);
|
||||
rpc UpdateAdminAdTemplate(UpdateAdminAdTemplateRequest) returns (UpdateAdminAdTemplateResponse);
|
||||
rpc DeleteAdminAdTemplate(DeleteAdminAdTemplateRequest) returns (MessageResponse);
|
||||
rpc ListAdminPopupAds(ListAdminPopupAdsRequest) returns (ListAdminPopupAdsResponse);
|
||||
rpc GetAdminPopupAd(GetAdminPopupAdRequest) returns (GetAdminPopupAdResponse);
|
||||
rpc CreateAdminPopupAd(CreateAdminPopupAdRequest) returns (CreateAdminPopupAdResponse);
|
||||
rpc UpdateAdminPopupAd(UpdateAdminPopupAdRequest) returns (UpdateAdminPopupAdResponse);
|
||||
rpc DeleteAdminPopupAd(DeleteAdminPopupAdRequest) returns (MessageResponse);
|
||||
rpc ListAdminPlayerConfigs(ListAdminPlayerConfigsRequest) returns (ListAdminPlayerConfigsResponse);
|
||||
rpc GetAdminPlayerConfig(GetAdminPlayerConfigRequest) returns (GetAdminPlayerConfigResponse);
|
||||
rpc CreateAdminPlayerConfig(CreateAdminPlayerConfigRequest) returns (CreateAdminPlayerConfigResponse);
|
||||
@@ -338,6 +343,59 @@ message DeleteAdminAdTemplateRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListAdminPopupAdsRequest {
|
||||
int32 page = 1;
|
||||
int32 limit = 2;
|
||||
optional string user_id = 3;
|
||||
optional string search = 4;
|
||||
}
|
||||
|
||||
message ListAdminPopupAdsResponse {
|
||||
repeated AdminPopupAd items = 1;
|
||||
int64 total = 2;
|
||||
int32 page = 3;
|
||||
int32 limit = 4;
|
||||
}
|
||||
|
||||
message GetAdminPopupAdRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetAdminPopupAdResponse {
|
||||
AdminPopupAd item = 1;
|
||||
}
|
||||
|
||||
message CreateAdminPopupAdRequest {
|
||||
string user_id = 1;
|
||||
string type = 2;
|
||||
string label = 3;
|
||||
string value = 4;
|
||||
optional bool is_active = 5;
|
||||
optional int32 max_triggers_per_session = 6;
|
||||
}
|
||||
|
||||
message CreateAdminPopupAdResponse {
|
||||
AdminPopupAd item = 1;
|
||||
}
|
||||
|
||||
message UpdateAdminPopupAdRequest {
|
||||
string id = 1;
|
||||
string user_id = 2;
|
||||
string type = 3;
|
||||
string label = 4;
|
||||
string value = 5;
|
||||
optional bool is_active = 6;
|
||||
optional int32 max_triggers_per_session = 7;
|
||||
}
|
||||
|
||||
message UpdateAdminPopupAdResponse {
|
||||
AdminPopupAd item = 1;
|
||||
}
|
||||
|
||||
message DeleteAdminPopupAdRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListAdminPlayerConfigsRequest {
|
||||
int32 page = 1;
|
||||
int32 limit = 2;
|
||||
|
||||
@@ -19,6 +19,14 @@ service AdTemplates {
|
||||
rpc DeleteAdTemplate(DeleteAdTemplateRequest) returns (MessageResponse);
|
||||
}
|
||||
|
||||
service PopupAds {
|
||||
rpc ListPopupAds(ListPopupAdsRequest) returns (ListPopupAdsResponse);
|
||||
rpc CreatePopupAd(CreatePopupAdRequest) returns (CreatePopupAdResponse);
|
||||
rpc UpdatePopupAd(UpdatePopupAdRequest) returns (UpdatePopupAdResponse);
|
||||
rpc DeletePopupAd(DeletePopupAdRequest) returns (MessageResponse);
|
||||
rpc GetActivePopupAd(GetActivePopupAdRequest) returns (GetActivePopupAdResponse);
|
||||
}
|
||||
|
||||
service PlayerConfigs {
|
||||
rpc ListPlayerConfigs(ListPlayerConfigsRequest) returns (ListPlayerConfigsResponse);
|
||||
rpc CreatePlayerConfig(CreatePlayerConfigRequest) returns (CreatePlayerConfigResponse);
|
||||
@@ -87,6 +95,53 @@ message DeleteAdTemplateRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message ListPopupAdsRequest {
|
||||
int32 page = 1;
|
||||
int32 limit = 2;
|
||||
}
|
||||
|
||||
message ListPopupAdsResponse {
|
||||
repeated PopupAd items = 1;
|
||||
int64 total = 2;
|
||||
int32 page = 3;
|
||||
int32 limit = 4;
|
||||
}
|
||||
|
||||
message CreatePopupAdRequest {
|
||||
string type = 1;
|
||||
string label = 2;
|
||||
string value = 3;
|
||||
optional bool is_active = 4;
|
||||
optional int32 max_triggers_per_session = 5;
|
||||
}
|
||||
|
||||
message CreatePopupAdResponse {
|
||||
PopupAd item = 1;
|
||||
}
|
||||
|
||||
message UpdatePopupAdRequest {
|
||||
string id = 1;
|
||||
string type = 2;
|
||||
string label = 3;
|
||||
string value = 4;
|
||||
optional bool is_active = 5;
|
||||
optional int32 max_triggers_per_session = 6;
|
||||
}
|
||||
|
||||
message UpdatePopupAdResponse {
|
||||
PopupAd item = 1;
|
||||
}
|
||||
|
||||
message DeletePopupAdRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetActivePopupAdRequest {}
|
||||
|
||||
message GetActivePopupAdResponse {
|
||||
optional PopupAd item = 1;
|
||||
}
|
||||
|
||||
message ListPlayerConfigsRequest {}
|
||||
|
||||
message ListPlayerConfigsResponse {
|
||||
|
||||
@@ -79,6 +79,17 @@ message AdTemplate {
|
||||
google.protobuf.Timestamp updated_at = 10;
|
||||
}
|
||||
|
||||
message PopupAd {
|
||||
string id = 1;
|
||||
string type = 2;
|
||||
string label = 3;
|
||||
string value = 4;
|
||||
bool is_active = 5;
|
||||
int32 max_triggers_per_session = 6;
|
||||
google.protobuf.Timestamp created_at = 7;
|
||||
google.protobuf.Timestamp updated_at = 8;
|
||||
}
|
||||
|
||||
message PlayerConfig {
|
||||
string id = 1;
|
||||
string name = 2;
|
||||
@@ -331,6 +342,19 @@ message AdminAdTemplate {
|
||||
google.protobuf.Timestamp updated_at = 12;
|
||||
}
|
||||
|
||||
message AdminPopupAd {
|
||||
string id = 1;
|
||||
string user_id = 2;
|
||||
string type = 3;
|
||||
string label = 4;
|
||||
string value = 5;
|
||||
bool is_active = 6;
|
||||
int32 max_triggers_per_session = 7;
|
||||
optional string owner_email = 8;
|
||||
google.protobuf.Timestamp created_at = 9;
|
||||
google.protobuf.Timestamp updated_at = 10;
|
||||
}
|
||||
|
||||
message AdminJob {
|
||||
string id = 1;
|
||||
string status = 2;
|
||||
|
||||
Reference in New Issue
Block a user