Compare commits

1 Commits

Author SHA1 Message Date
7db63d2d92 Merge pull request 'Fix: 지갑 미발견 시 자동 생성 fallback 추가' (#1) from fix/wallet-auto-create into main
All checks were successful
Server CI/CD / lint-and-build (push) Successful in 21s
Server CI/CD / deploy (push) Successful in 1m0s
Reviewed-on: #1
2026-03-19 02:30:28 +00:00
3 changed files with 9 additions and 17 deletions

View File

@@ -252,10 +252,7 @@ func (s *Service) CompleteRaid(sessionName string, rewards []PlayerReward) (*Bos
} }
} }
// BossRoom 삭제 후 슬롯 리셋 — 다음 파티가 즉시 슬롯 재사용 가능 // Reset slot to idle so it can accept new raids
if err := s.repo.DeleteRoomBySessionName(sessionName); err != nil {
log.Printf("BossRoom 삭제 실패 (complete): %s: %v", sessionName, err)
}
if err := s.repo.ResetRoomSlot(sessionName); err != nil { if err := s.repo.ResetRoomSlot(sessionName); err != nil {
log.Printf("슬롯 리셋 실패 (complete): %s: %v", sessionName, err) log.Printf("슬롯 리셋 실패 (complete): %s: %v", sessionName, err)
} }
@@ -279,20 +276,15 @@ func (s *Service) FailRaid(sessionName string) (*BossRoom, error) {
return nil, fmt.Errorf("상태 업데이트 실패: %w", err) return nil, fmt.Errorf("상태 업데이트 실패: %w", err)
} }
// 응답용 room 조회 (삭제 전에 수행) // Reset slot to idle so it can accept new raids
room, err := s.repo.FindBySessionName(sessionName)
if err != nil {
return nil, fmt.Errorf("방을 찾을 수 없습니다: %w", err)
}
// BossRoom 삭제 후 슬롯 리셋 — 다음 파티가 즉시 슬롯 재사용 가능
if err := s.repo.DeleteRoomBySessionName(sessionName); err != nil {
log.Printf("BossRoom 삭제 실패 (fail): %s: %v", sessionName, err)
}
if err := s.repo.ResetRoomSlot(sessionName); err != nil { if err := s.repo.ResetRoomSlot(sessionName); err != nil {
log.Printf("슬롯 리셋 실패 (fail): %s: %v", sessionName, err) log.Printf("슬롯 리셋 실패 (fail): %s: %v", sessionName, err)
} }
room, err := s.repo.FindBySessionName(sessionName)
if err != nil {
return nil, fmt.Errorf("방을 찾을 수 없습니다: %w", err)
}
return room, nil return room, nil
} }

View File

@@ -167,9 +167,9 @@ func (s *Service) SaveGameDataByUsername(username string, data *GameDataRequest)
// GrantExperience adds experience to a player and handles level ups + stat recalculation. // GrantExperience adds experience to a player and handles level ups + stat recalculation.
func (s *Service) GrantExperience(userID uint, exp int) (*LevelUpResult, error) { func (s *Service) GrantExperience(userID uint, exp int) (*LevelUpResult, error) {
profile, err := s.GetProfile(userID) profile, err := s.repo.FindByUserID(userID)
if err != nil { if err != nil {
return nil, fmt.Errorf("프로필 조회/생성 실패: %w", err) return nil, fmt.Errorf("프로필이 존재하지 않습니다")
} }
result := ApplyExperience(profile.Level, profile.Experience, exp) result := ApplyExperience(profile.Level, profile.Experience, exp)

View File

@@ -33,7 +33,7 @@ func New() *fiber.App {
app.Use(middleware.SecurityHeaders) app.Use(middleware.SecurityHeaders)
app.Use(cors.New(cors.Config{ app.Use(cors.New(cors.Config{
AllowOrigins: "https://a301.tolelom.xyz", AllowOrigins: "https://a301.tolelom.xyz",
AllowHeaders: "Origin, Content-Type, Authorization, Idempotency-Key, X-API-Key, X-Requested-With", AllowHeaders: "Origin, Content-Type, Authorization, Idempotency-Key, X-API-Key",
AllowMethods: "GET, POST, PUT, PATCH, DELETE", AllowMethods: "GET, POST, PUT, PATCH, DELETE",
AllowCredentials: true, AllowCredentials: true,
})) }))