mirror of
https://github.com/Walter-Sparrow/lunar-tear.git
synced 2026-07-02 05:43:41 +03:00
Initial commit
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
pb "lunar-tear/server/gen/proto"
|
||||
"lunar-tear/server/internal/store"
|
||||
"lunar-tear/server/internal/userdata"
|
||||
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
)
|
||||
|
||||
type DataServiceServer struct {
|
||||
pb.UnimplementedDataServiceServer
|
||||
users store.UserRepository
|
||||
sessions store.SessionRepository
|
||||
}
|
||||
|
||||
func NewDataServiceServer(users store.UserRepository, sessions store.SessionRepository) *DataServiceServer {
|
||||
return &DataServiceServer{users: users, sessions: sessions}
|
||||
}
|
||||
|
||||
func (s *DataServiceServer) GetLatestMasterDataVersion(ctx context.Context, _ *emptypb.Empty) (*pb.MasterDataGetLatestVersionResponse, error) {
|
||||
log.Printf("[DataService] GetLatestMasterDataVersion")
|
||||
return &pb.MasterDataGetLatestVersionResponse{
|
||||
LatestMasterDataVersion: "20240404193219",
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *DataServiceServer) GetUserDataNameV2(ctx context.Context, _ *emptypb.Empty) (*pb.UserDataGetNameResponseV2, error) {
|
||||
log.Printf("[DataService] GetUserDataNameV2")
|
||||
return &pb.UserDataGetNameResponseV2{
|
||||
TableNameList: []*pb.TableNameList{
|
||||
{TableName: defaultTableNames()},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *DataServiceServer) GetUserData(ctx context.Context, req *pb.UserDataGetRequest) (*pb.UserDataGetResponse, error) {
|
||||
log.Printf("[DataService] GetUserData: tables=%v", req.TableName)
|
||||
|
||||
userId := currentUserId(ctx, s.users, s.sessions)
|
||||
user, err := s.users.SnapshotUser(userId)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("snapshot user: %w", err)
|
||||
}
|
||||
|
||||
defaults := userdata.FirstEntranceClientTableMap(user)
|
||||
result := userdata.SelectTables(defaults, req.TableName)
|
||||
return &pb.UserDataGetResponse{
|
||||
UserDataJson: result,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func defaultTableNames() []string {
|
||||
return []string{
|
||||
"IUser",
|
||||
"IUserApple",
|
||||
"IUserAutoSaleSettingDetail",
|
||||
"IUserBeginnerCampaign",
|
||||
"IUserBigHuntMaxScore",
|
||||
"IUserBigHuntProgressStatus",
|
||||
"IUserBigHuntScheduleMaxScore",
|
||||
"IUserBigHuntStatus",
|
||||
"IUserBigHuntWeeklyMaxScore",
|
||||
"IUserBigHuntWeeklyStatus",
|
||||
"IUserCageOrnamentReward",
|
||||
"IUserCharacter",
|
||||
"IUserCharacterBoard",
|
||||
"IUserCharacterBoardAbility",
|
||||
"IUserCharacterBoardCompleteReward",
|
||||
"IUserCharacterBoardStatusUp",
|
||||
"IUserCharacterCostumeLevelBonus",
|
||||
"IUserCharacterRebirth",
|
||||
"IUserCharacterViewerField",
|
||||
"IUserComebackCampaign",
|
||||
"IUserCompanion",
|
||||
"IUserConsumableItem",
|
||||
"IUserContentsStory",
|
||||
"IUserCostume",
|
||||
"IUserCostumeActiveSkill",
|
||||
"IUserCostumeAwakenStatusUp",
|
||||
"IUserCostumeLevelBonusReleaseStatus",
|
||||
"IUserCostumeLotteryEffect",
|
||||
"IUserCostumeLotteryEffectAbility",
|
||||
"IUserCostumeLotteryEffectPending",
|
||||
"IUserCostumeLotteryEffectStatusUp",
|
||||
"IUserDeck",
|
||||
"IUserDeckCharacter",
|
||||
"IUserDeckCharacterDressupCostume",
|
||||
"IUserDeckLimitContentRestricted",
|
||||
"IUserDeckPartsGroup",
|
||||
"IUserDeckSubWeaponGroup",
|
||||
"IUserDeckTypeNote",
|
||||
"IUserDokan",
|
||||
"IUserEventQuestDailyGroupCompleteReward",
|
||||
"IUserEventQuestGuerrillaFreeOpen",
|
||||
"IUserEventQuestLabyrinthSeason",
|
||||
"IUserEventQuestLabyrinthStage",
|
||||
"IUserEventQuestProgressStatus",
|
||||
"IUserEventQuestTowerAccumulationReward",
|
||||
"IUserExplore",
|
||||
"IUserExploreScore",
|
||||
"IUserExtraQuestProgressStatus",
|
||||
"IUserFacebook",
|
||||
"IUserGem",
|
||||
"IUserGimmick",
|
||||
"IUserGimmickOrnamentProgress",
|
||||
"IUserGimmickSequence",
|
||||
"IUserGimmickUnlock",
|
||||
"IUserImportantItem",
|
||||
"IUserLimitedOpen",
|
||||
// "IUserLogin",
|
||||
"IUserLoginBonus",
|
||||
"IUserMainQuestFlowStatus",
|
||||
"IUserMainQuestMainFlowStatus",
|
||||
"IUserMainQuestProgressStatus",
|
||||
"IUserMainQuestReplayFlowStatus",
|
||||
"IUserMainQuestSeasonRoute",
|
||||
"IUserMaterial",
|
||||
"IUserMission",
|
||||
"IUserMissionCompletionProgress",
|
||||
"IUserMissionPassPoint",
|
||||
"IUserMovie",
|
||||
"IUserNaviCutIn",
|
||||
"IUserOmikuji",
|
||||
"IUserParts",
|
||||
"IUserPartsGroupNote",
|
||||
"IUserPartsPreset",
|
||||
"IUserPartsPresetTag",
|
||||
"IUserPartsStatusSub",
|
||||
"IUserPortalCageStatus",
|
||||
"IUserPossessionAutoConvert",
|
||||
"IUserPremiumItem",
|
||||
"IUserProfile",
|
||||
"IUserPvpDefenseDeck",
|
||||
"IUserPvpStatus",
|
||||
"IUserPvpWeeklyResult",
|
||||
"IUserQuest",
|
||||
"IUserQuestAutoOrbit",
|
||||
"IUserQuestLimitContentStatus",
|
||||
"IUserQuestMission",
|
||||
"IUserQuestReplayFlowRewardGroup",
|
||||
"IUserQuestSceneChoice",
|
||||
"IUserQuestSceneChoiceHistory",
|
||||
// "IUserSetting",
|
||||
"IUserShopItem",
|
||||
"IUserShopReplaceable",
|
||||
"IUserShopReplaceableLineup",
|
||||
"IUserSideStoryQuest",
|
||||
"IUserSideStoryQuestSceneProgressStatus",
|
||||
"IUserStatus",
|
||||
"IUserThought",
|
||||
"IUserTripleDeck",
|
||||
"IUserTutorialProgress",
|
||||
"IUserWeapon",
|
||||
"IUserWeaponAbility",
|
||||
"IUserWeaponAwaken",
|
||||
"IUserWeaponNote",
|
||||
"IUserWeaponSkill",
|
||||
"IUserWeaponStory",
|
||||
"IUserWebviewPanelMission",
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user