AddPublisherBean.java 6.38 KB
package org.legrog.presentation;

import org.legrog.application.PublisherRevisionService;
import org.legrog.application.PublisherService;
import org.legrog.application.SharedService;
import org.legrog.application.UserService;
import org.legrog.entities.Country;
import org.legrog.entities.Publisher;
import org.legrog.entities.PublisherRevision;
import org.legrog.entities.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.util.Date;
import java.sql.Timestamp;
import java.time.ZoneId;
import java.util.HashSet;
import java.util.List;
import java.util.Random;

@Named
@RequestScoped
public class AddPublisherBean {
    Logger logger = LoggerFactory.getLogger(getClass());

    @Inject
    private SharedService sharedService;
    @Inject
    private UserService userService;
    @Inject
    private PublisherService publisherService;
    @Inject
    private PublisherRevisionService publisherRevisionService;

    private String publisherName;
    private String publisherStreetAddress;
    private String publisherPostalCode;
    private String publisherPostOfficeBoxNumber;
    private String publisherAddressRegion;
    private String publisherAddressLocality;
    private Country publisherAddressCountry;
    private String publisherTelephone;
    private String publisherEmail;
    private String publisherURL;
    private boolean publisherActive;
    private String publisherHistory;

    private List<Country> availableCountries;

    public String add() {
        logger.info("add");
        Publisher publisher = new Publisher();
        PublisherRevision publisherRevision = new PublisherRevision();
        HashSet<PublisherRevision> publisherRevisions = new HashSet<PublisherRevision>();
        publisherRevisions.add(publisherRevision);
        publisher.setRevisions(publisherRevisions);
        logger.info(publisher.toString());
        publisherRevision.setPublisherActive(publisherActive);
        publisherRevision.setPublisherAddressCountry(publisherAddressCountry);
        publisherRevision.setPublisherAddressLocality(publisherAddressLocality);
        publisherRevision.setPublisherAddressRegion(publisherAddressRegion);
        publisherRevision.setPublisherAddressLocality(publisherAddressLocality);
        publisherRevision.setPublisherEmail(publisherEmail);
        publisherRevision.setPublisherHistory(publisherHistory);
        publisherRevision.setPublisherName(publisherName);
        publisherRevision.setPublisherPostalCode(publisherPostalCode);
        publisherRevision.setPublisherPostOfficeBoxNumber(publisherPostOfficeBoxNumber);
        publisherRevision.setPublisherStreetAddress(publisherStreetAddress);
        publisherRevision.setPublisherTelephone(publisherTelephone);
        publisherRevision.setPublisherURL(publisherURL);

        publisherRevision.setPublisherRevisionDatetime(new Timestamp(new Date().getTime()));

        // TODO Remplacer l'astuce par une vraie récupération de l'utilisateur
        List<User> users = userService.getAllUsers();
        Random random = new Random();
        User user = users.get(random.nextInt(users.size()));
        // End TODO
        publisherRevision.setPublisherRevisionAuthor(user);
        logger.info(publisherRevision.toString());
        publisherRevisionService.addPublisherRevission(publisherRevision);
        publisherService.addPublisher(publisher);
        return "success";
    }

    @PostConstruct
    public void init() {
        availableCountries = sharedService.getAllCountries();
    }

    public String getPublisherName() {
        return publisherName;
    }

    public void setPublisherName(String publisherName) {
        this.publisherName = publisherName;
    }

    public String getPublisherStreetAddress() {
        return publisherStreetAddress;
    }

    public void setPublisherStreetAddress(String publisherStreetAddress) {
        this.publisherStreetAddress = publisherStreetAddress;
    }

    public String getPublisherPostalCode() {
        return publisherPostalCode;
    }

    public void setPublisherPostalCode(String publisherPostalCode) {
        this.publisherPostalCode = publisherPostalCode;
    }

    public String getPublisherPostOfficeBoxNumber() {
        return publisherPostOfficeBoxNumber;
    }

    public void setPublisherPostOfficeBoxNumber(String publisherPostOfficeBoxNumber) {
        this.publisherPostOfficeBoxNumber = publisherPostOfficeBoxNumber;
    }

    public String getPublisherAddressRegion() {
        return publisherAddressRegion;
    }

    public void setPublisherAddressRegion(String publisherAddressRegion) {
        this.publisherAddressRegion = publisherAddressRegion;
    }

    public String getPublisherAddressLocality() {
        return publisherAddressLocality;
    }

    public void setPublisherAddressLocality(String publisherAddressLocality) {
        this.publisherAddressLocality = publisherAddressLocality;
    }

    public Country getPublisherAddressCountry() {
        return publisherAddressCountry;
    }

    public void setPublisherAddressCountry(Country publisherAddressCountry) {
        this.publisherAddressCountry = publisherAddressCountry;
    }

    public String getPublisherTelephone() {
        return publisherTelephone;
    }

    public void setPublisherTelephone(String publisherTelephone) {
        this.publisherTelephone = publisherTelephone;
    }

    public String getPublisherEmail() {
        return publisherEmail;
    }

    public void setPublisherEmail(String publisherEmail) {
        this.publisherEmail = publisherEmail;
    }

    public String getPublisherURL() {
        return publisherURL;
    }

    public void setPublisherURL(String publisherURL) {
        this.publisherURL = publisherURL;
    }

    public boolean isPublisherActive() {
        return publisherActive;
    }

    public void setPublisherActive(boolean publisherActive) {
        this.publisherActive = publisherActive;
    }

    public String getPublisherHistory() {
        return publisherHistory;
    }

    public void setPublisherHistory(String publisherHistory) {
        this.publisherHistory = publisherHistory;
    }

    public List<Country> getAvailableCountries() {
        return availableCountries;
    }

    public void setAvailableCountries(List<Country> availableCountries) {
        this.availableCountries = availableCountries;
    }
}