Files
paypoint-backend/src/main/java/nl/veenm/paypoint/service/CompanyService.java
veenm a497b8162b
All checks were successful
Docker Image CI / build-and-push (push) Successful in 11m9s
Docker Image CI / deploy (push) Successful in 27s
Docker Image CI / notify-failure (push) Has been skipped
Update:
-delen van agenda toegevoegd
-popup aangepast
-accepteren van uitnodiging toegevoegd
-koppelen van gebruiker aan bedrijf
-versturen van uitnodiging via mail
2025-04-18 22:41:17 +02:00

56 lines
1.7 KiB
Java

package nl.veenm.paypoint.service;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import nl.veenm.paypoint.domain.*;
import nl.veenm.paypoint.domain.dto.CompanyDTO;
import nl.veenm.paypoint.domain.mapper.CompanyMapper;
import nl.veenm.paypoint.repository.CompanyRepository;
import nl.veenm.paypoint.repository.InviteRepository;
import nl.veenm.paypoint.repository.UserCompanyRepository;
import nl.veenm.paypoint.repository.UserRepository;
import java.util.List;
@ApplicationScoped
public class CompanyService {
@Inject
CompanyRepository companyRepository;
@Inject
UserCompanyRepository userCompanyRepository;
@Inject
UserRepository userRepository;
@Inject
InviteRepository inviteRepository;
public List<UserCompany> getCompanies(String username) {
AppUser user = userRepository.findByUsername(username);
return userCompanyRepository.getAllByUserId(user);
}
public CompanyDTO getCompanyById(Long id) {
return CompanyMapper.toDto(companyRepository.findById(id));
}
@Transactional
public void linkCompany(Long userId, String token) {
AppUser user = userRepository.findById(userId);
InviteEntity invite = inviteRepository.findByToken(token);
Company company = companyRepository.findById(invite.company_id);
UserCompany userCompany = new UserCompany();
userCompany.setUser(user);
userCompany.setCompany(company);
userCompany.setAccessLevel(AccessLevel.USER);
userCompanyRepository.persist(userCompany);
invite.used = true;
inviteRepository.persist(invite);
}
}