/* * Copyright (C) 2008-2024, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ package com.juick; import com.juick.service.EmailService; import com.juick.service.PatreonService; import com.juick.service.VKService; import com.juick.service.security.entities.JuickUser; import jakarta.inject.Inject; import org.springframework.context.ApplicationListener; import org.springframework.security.authentication.event.AuthenticationSuccessEvent; public class PremiumManager implements ApplicationListener { @Inject VKService vkService; @Inject PatreonService patreonService; @Inject EmailService emailService; @Override public void onApplicationEvent(AuthenticationSuccessEvent event) { var juickUser = (JuickUser)event.getAuthentication().getPrincipal(); var isDon = vkService.updatePremiumStatus(juickUser.getUser().getUid()); if (!isDon) { patreonService.updateStatus(emailService.getEmails(juickUser.getUser().getUid(), false)); } } }