127 lines
5.2 KiB
Go
127 lines
5.2 KiB
Go
package activityapi
|
|
|
|
import (
|
|
"context"
|
|
|
|
"hyapp/pkg/userleaderboard"
|
|
"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
|
|
userLeaderboard UserLeaderboardStore
|
|
registrationReward client.RegistrationRewardClient
|
|
firstRechargeReward client.FirstRechargeRewardClient
|
|
cumulativeRecharge client.CumulativeRechargeRewardClient
|
|
inviteActivityReward client.InviteActivityRewardClient
|
|
sevenDayCheckIn client.SevenDayCheckInClient
|
|
luckyGift client.LuckyGiftClient
|
|
roomTurnoverReward client.RoomTurnoverRewardClient
|
|
weeklyStar client.WeeklyStarClient
|
|
cpWeeklyRank client.CPWeeklyRankClient
|
|
agencyOpening client.AgencyOpeningClient
|
|
wheel client.WheelClient
|
|
}
|
|
|
|
type UserLeaderboardStore interface {
|
|
List(ctx context.Context, query userleaderboard.Query) (userleaderboard.Page, error)
|
|
RankForUser(ctx context.Context, query userleaderboard.Query, userID int64) (userleaderboard.Entry, bool, error)
|
|
}
|
|
|
|
type Config struct {
|
|
TaskClient client.TaskClient
|
|
GrowthLevelClient client.GrowthLevelClient
|
|
AchievementClient client.AchievementClient
|
|
UserProfileClient client.UserProfileClient
|
|
RoomQueryClient client.RoomQueryClient
|
|
WalletClient client.WalletClient
|
|
UserLeaderboard UserLeaderboardStore
|
|
RegistrationReward client.RegistrationRewardClient
|
|
FirstRechargeReward client.FirstRechargeRewardClient
|
|
CumulativeRecharge client.CumulativeRechargeRewardClient
|
|
InviteActivityReward client.InviteActivityRewardClient
|
|
SevenDayCheckIn client.SevenDayCheckInClient
|
|
LuckyGift client.LuckyGiftClient
|
|
RoomTurnoverReward client.RoomTurnoverRewardClient
|
|
WeeklyStar client.WeeklyStarClient
|
|
CPWeeklyRank client.CPWeeklyRankClient
|
|
AgencyOpening client.AgencyOpeningClient
|
|
Wheel client.WheelClient
|
|
}
|
|
|
|
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,
|
|
userLeaderboard: config.UserLeaderboard,
|
|
registrationReward: config.RegistrationReward,
|
|
firstRechargeReward: config.FirstRechargeReward,
|
|
cumulativeRecharge: config.CumulativeRecharge,
|
|
inviteActivityReward: config.InviteActivityReward,
|
|
sevenDayCheckIn: config.SevenDayCheckIn,
|
|
luckyGift: config.LuckyGift,
|
|
roomTurnoverReward: config.RoomTurnoverReward,
|
|
weeklyStar: config.WeeklyStar,
|
|
cpWeeklyRank: config.CPWeeklyRank,
|
|
agencyOpening: config.AgencyOpening,
|
|
wheel: config.Wheel,
|
|
}
|
|
}
|
|
|
|
func (h *Handler) TaskHandlers() httproutes.TaskHandlers {
|
|
return httproutes.TaskHandlers{
|
|
ListTaskTabs: h.listTaskTabs,
|
|
ClaimTaskReward: h.claimTaskReward,
|
|
GetRegistrationRewardEligibility: h.getRegistrationRewardEligibility,
|
|
GetFirstRechargeRewardStatus: h.getFirstRechargeRewardStatus,
|
|
GetCumulativeRechargeRewardStatus: h.getCumulativeRechargeRewardStatus,
|
|
GetInviteActivityRewardStatus: h.getInviteActivityRewardStatus,
|
|
ClaimInviteActivityReward: h.claimInviteActivityReward,
|
|
ListInviteActivityLeaderboard: h.listInviteActivityLeaderboard,
|
|
GetSevenDayCheckInStatus: h.getSevenDayCheckInStatus,
|
|
SignSevenDayCheckIn: h.signSevenDayCheckIn,
|
|
ListUserLeaderboards: h.listUserLeaderboards,
|
|
CheckLuckyGift: h.checkLuckyGift,
|
|
GetRoomTurnoverRewardStatus: h.getRoomTurnoverRewardStatus,
|
|
GetWeeklyStarCurrent: h.getWeeklyStarCurrent,
|
|
ListWeeklyStarLeaderboard: h.listWeeklyStarLeaderboard,
|
|
ListWeeklyStarHistory: h.listWeeklyStarHistory,
|
|
GetCPWeeklyRankStatus: h.getCPWeeklyRankStatus,
|
|
GetAgencyOpeningStatus: h.getAgencyOpeningStatus,
|
|
ApplyAgencyOpening: h.applyAgencyOpening,
|
|
ListAgencyOpeningLeaderboard: h.listAgencyOpeningLeaderboard,
|
|
GetWheelConfig: h.getWheelConfig,
|
|
DrawWheel: h.drawWheel,
|
|
ListWheelHistory: h.listWheelHistory,
|
|
ListWheelHints: h.listWheelHints,
|
|
}
|
|
}
|
|
|
|
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,
|
|
}
|
|
}
|