Skip to content

Commit

Permalink
Merge pull request #119 from UdL-EPS-SoftArch/craete-advertisement
Browse files Browse the repository at this point in the history
Create advertisement
rogargon authored Dec 15, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents def55d1 + 1ed6ac3 commit a884f43
Showing 4 changed files with 58 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@
@Configuration
public class DBInitialization {
private final OwnerRepository ownerRepository;
private final AdvertisementStatusRepository advertisementStatusRepository;
@Value("${default-password}")
String defaultPassword;
@Value("${spring.profiles.active:}")
@@ -24,12 +25,13 @@ public class DBInitialization {
private final ApartmentRepository apartmentRepository;
private final AdvertisementRepository advertisementRepository;

public DBInitialization(UserRepository userRepository, OwnerRepository ownerRepository, AdminRepository adminRepository, AdvertisementRepository advertisementRepository, ApartmentRepository apartmentRepository) {
public DBInitialization(UserRepository userRepository, OwnerRepository ownerRepository, AdminRepository adminRepository, AdvertisementRepository advertisementRepository, ApartmentRepository apartmentRepository, AdvertisementStatusRepository advertisementStatusRepository) {
this.userRepository = userRepository;
this.ownerRepository = ownerRepository;
this.apartmentRepository = apartmentRepository;
this.adminRepository = adminRepository;
this.advertisementRepository = advertisementRepository;
this.advertisementStatusRepository = advertisementStatusRepository;
}

@PostConstruct
@@ -53,7 +55,21 @@ public void initializeDatabase() {
user.encodePassword();
adminRepository.save(user);
}

if(advertisementStatusRepository.findByStatus("Available").isEmpty()){
AdvertisementStatus status = new AdvertisementStatus();
status.setStatus("Available");
advertisementStatusRepository.save(status);
}
if(advertisementStatusRepository.findByStatus("Reserved").isEmpty()){
AdvertisementStatus status = new AdvertisementStatus();
status.setStatus("Reserved");
advertisementStatusRepository.save(status);
}
if(advertisementStatusRepository.findByStatus("Sold").isEmpty()){
AdvertisementStatus status = new AdvertisementStatus();
status.setStatus("Sold");
advertisementStatusRepository.save(status);
}
if (!ownerRepository.existsById("owner")) {
mainOwner = new Owner();
mainOwner.setEmail("[email protected]");
21 changes: 21 additions & 0 deletions src/main/java/cat/udl/eps/softarch/demo/domain/Advertisement.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package cat.udl.eps.softarch.demo.domain;

import cat.udl.eps.softarch.demo.handler.AdvertisementStatusRepositoryHolder;
import cat.udl.eps.softarch.demo.repository.AdvertisementStatusRepository;
import com.fasterxml.jackson.annotation.JsonIdentityReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.*;
@@ -9,15 +11,21 @@
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
import java.time.ZonedDateTime;
import java.util.List;


@Setter
@Getter
@Entity

public class Advertisement extends UriEntity<Long> {



@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@@ -61,4 +69,17 @@ public class Advertisement extends UriEntity<Long> {
public Advertisement() {
this.creationDate = ZonedDateTime.now();
}
@PrePersist
private void initializeAdStatus() {
if (this.adStatus == null) {
List<AdvertisementStatus> entities = AdvertisementStatusRepositoryHolder.getRepository().findByStatus("Available");

if (entities.isEmpty()) {
throw new EntityNotFoundException("No entities found with status: Available" );
}
this.adStatus = entities.get(0);
}
}
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package cat.udl.eps.softarch.demo.handler;

import cat.udl.eps.softarch.demo.repository.AdvertisementStatusRepository;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AdvertisementStatusRepositoryHolder {

@Getter
private static AdvertisementStatusRepository repository;

@Autowired
public AdvertisementStatusRepositoryHolder(AdvertisementStatusRepository advertisementStatusRepository) {
repository = advertisementStatusRepository;
}

}
Original file line number Diff line number Diff line change
@@ -9,5 +9,4 @@

public interface AdvertisementRepository extends CrudRepository<Advertisement, Long>, PagingAndSortingRepository<Advertisement, Long> {
List<Advertisement> findByTitle(@Param("title") String title);

}

0 comments on commit a884f43

Please sign in to comment.