source: src/main/java/edu/gjoko/schedlr/services/BusinessService.java@ 8bcd64c

Last change on this file since 8bcd64c was 8bcd64c, checked in by Gjoko Kostadinov <gjoko.kostadinov@…>, 14 months ago

Add admin functionality and business admin functionality.

  • Property mode set to 100644
File size: 2.2 KB
Line 
1package edu.gjoko.schedlr.services;
2
3import edu.gjoko.schedlr.entity.Business;
4import edu.gjoko.schedlr.entity.ServiceType;
5import edu.gjoko.schedlr.entity.Stakeholder;
6import edu.gjoko.schedlr.entity.StakeholderType;
7import edu.gjoko.schedlr.repositories.BusinessRepository;
8import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
9import lombok.AllArgsConstructor;
10import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
11import org.springframework.stereotype.Service;
12
13import java.util.List;
14
15import static edu.gjoko.schedlr.entity.BusinessStatus.NEW;
16
17@Service
18@AllArgsConstructor
19public class BusinessService {
20
21 private final BusinessRepository businessRepository;
22 private final ServiceTypeRepository serviceTypeRepository;
23 private BCryptPasswordEncoder bCryptPasswordEncoder;
24
25 public void saveBusiness(Business business) {
26 saveNewServiceTypes(business);
27 business.getOwner().setStakeholderType(StakeholderType.BUSINESS_OWNER);
28 business.getOwner().setPassword(bCryptPasswordEncoder.encode(business.getOwner().getPassword()));
29 business.setBusinessStatus(NEW);
30 businessRepository.save(business);
31 }
32
33 public void saveNewServiceTypes(Business business) {
34 business.getServices()
35 .stream()
36 .forEach(service -> {
37 if (service.getServiceType().getId() == null) {
38 ServiceType serviceType = service.getServiceType();
39 serviceType.setBusinessType(business.getBusinessType());
40 service.setServiceType(serviceTypeRepository.save(serviceType));
41 }
42 });
43 }
44
45 public List<Business> findAll() {
46 return businessRepository.findAll();
47 }
48
49 public void updateBusinesses(List<Business> businessList) {
50 businessList
51 .stream()
52 .forEach(business -> {
53 businessRepository.save(business);
54 });
55 }
56
57 public Business findByOwner(Long ownerId) {
58 var owner = new Stakeholder();
59 owner.setId(ownerId);
60 return businessRepository.findBusinessByOwner(owner);
61 }
62}
Note: See TracBrowser for help on using the repository browser.