Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

プッシュトークンからPlatformApplicationを検索できないか調査 #151

Open
takoikatakotako opened this issue Oct 17, 2023 · 0 comments

Comments

@takoikatakotako
Copy link
Owner

取得したプッシュトークンとDynamoDBのプッシュトークンを比較して一致していれば早期リターンしている。
取得したプッシュトークンとDynamoDBのプッシュトークンを比較して一致しているが、Endpoint が無効になっている可能性がある。
そのためトークンからエンドポイントを取得して調査する方が良さそう

func (s *PushTokenService) AddIOSVoipPushToken(userID string, authToken string, voIPPushToken string) error {
	// ユーザーを取得
	user, err := s.DynamoDBRepository.GetUser(userID)
	if err != nil {
		return err
	}

	// UserID, AuthTokenが一致するか確認する
	if user.UserID == userID && user.AuthToken == authToken {
		// Nothing
	} else {
		return errors.New(message.ErrorAuthenticationFailure)
	}

	// 既に作成されてるか確認
	if user.IOSPlatformInfo.VoIPPushToken == voIPPushToken {
		return nil
	}

	// PlatformApplicationを作成
	snsEndpointArn, err := s.SNSRepository.CreateIOSVoipPushPlatformEndpoint(voIPPushToken)
	if err != nil {
		return err
	}

	// DynamoDBに追加
	user.IOSPlatformInfo.VoIPPushToken = voIPPushToken
	user.IOSPlatformInfo.VoIPPushTokenSNSEndpoint = snsEndpointArn
	return s.DynamoDBRepository.InsertUser(user)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant