84 lines
2.9 KiB
Go
84 lines
2.9 KiB
Go
package activityapi
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
"hyapp/services/gateway-service/internal/client"
|
|
"hyapp/services/gateway-service/internal/transport/http/httproutes"
|
|
)
|
|
|
|
// Handler owns activity-facing HTTP endpoints.
|
|
// It keeps task and registration reward reads/writes behind activity-service, with gateway only adding auth context.
|
|
type Handler struct {
|
|
taskClient client.TaskClient
|
|
growthLevelClient client.GrowthLevelClient
|
|
achievementClient client.AchievementClient
|
|
userProfileClient client.UserProfileClient
|
|
roomQueryClient client.RoomQueryClient
|
|
walletClient client.WalletClient
|
|
walletDB *sql.DB
|
|
registrationReward client.RegistrationRewardClient
|
|
firstRechargeReward client.FirstRechargeRewardClient
|
|
sevenDayCheckIn client.SevenDayCheckInClient
|
|
luckyGift client.LuckyGiftClient
|
|
}
|
|
|
|
type Config struct {
|
|
TaskClient client.TaskClient
|
|
GrowthLevelClient client.GrowthLevelClient
|
|
AchievementClient client.AchievementClient
|
|
UserProfileClient client.UserProfileClient
|
|
RoomQueryClient client.RoomQueryClient
|
|
WalletClient client.WalletClient
|
|
WalletDB *sql.DB
|
|
RegistrationReward client.RegistrationRewardClient
|
|
FirstRechargeReward client.FirstRechargeRewardClient
|
|
SevenDayCheckIn client.SevenDayCheckInClient
|
|
LuckyGift client.LuckyGiftClient
|
|
}
|
|
|
|
func New(config Config) *Handler {
|
|
return &Handler{
|
|
taskClient: config.TaskClient,
|
|
growthLevelClient: config.GrowthLevelClient,
|
|
achievementClient: config.AchievementClient,
|
|
userProfileClient: config.UserProfileClient,
|
|
roomQueryClient: config.RoomQueryClient,
|
|
walletClient: config.WalletClient,
|
|
walletDB: config.WalletDB,
|
|
registrationReward: config.RegistrationReward,
|
|
firstRechargeReward: config.FirstRechargeReward,
|
|
sevenDayCheckIn: config.SevenDayCheckIn,
|
|
luckyGift: config.LuckyGift,
|
|
}
|
|
}
|
|
|
|
func (h *Handler) TaskHandlers() httproutes.TaskHandlers {
|
|
return httproutes.TaskHandlers{
|
|
ListTaskTabs: h.listTaskTabs,
|
|
ClaimTaskReward: h.claimTaskReward,
|
|
GetRegistrationRewardEligibility: h.getRegistrationRewardEligibility,
|
|
GetFirstRechargeRewardStatus: h.getFirstRechargeRewardStatus,
|
|
GetSevenDayCheckInStatus: h.getSevenDayCheckInStatus,
|
|
SignSevenDayCheckIn: h.signSevenDayCheckIn,
|
|
ListUserLeaderboards: h.listUserLeaderboards,
|
|
CheckLuckyGift: h.checkLuckyGift,
|
|
}
|
|
}
|
|
|
|
func (h *Handler) LevelHandlers() httproutes.LevelHandlers {
|
|
return httproutes.LevelHandlers{
|
|
GetMyLevelOverview: h.getMyLevelOverview,
|
|
GetLevelTrack: h.getLevelTrack,
|
|
ListLevelRewards: h.listLevelRewards,
|
|
}
|
|
}
|
|
|
|
func (h *Handler) AchievementHandlers() httproutes.AchievementHandlers {
|
|
return httproutes.AchievementHandlers{
|
|
ListAchievements: h.listAchievements,
|
|
ListMyBadges: h.listMyBadges,
|
|
SetBadgeDisplay: h.setBadgeDisplay,
|
|
}
|
|
}
|