Skip to content

Commit

Permalink
admin sponsor page and dependant dtos
Browse files Browse the repository at this point in the history
  • Loading branch information
will1771 committed Apr 30, 2015
1 parent 5ea0456 commit 8006ce3
Show file tree
Hide file tree
Showing 11 changed files with 373 additions and 17 deletions.
38 changes: 38 additions & 0 deletions src/main/java/com/ioextendedgr/web/builder/SponsorBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.ioextendedgr.web.builder;

import com.ioextendedgr.web.data.Presenter;
import com.ioextendedgr.web.data.Sponsor;
import com.ioextendedgr.web.viewDto.PresenterView;
import com.ioextendedgr.web.viewDto.SponsorView;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class SponsorBuilder {

public static Collection<SponsorView> build(Collection<Sponsor> dtos) {
List<SponsorView> sponsors = new ArrayList<>();

for (Sponsor sponsor : dtos) {
sponsors.add(build(sponsor));
}

return sponsors;
}

public static SponsorView build(Sponsor dto) {
SponsorView sponsor = new SponsorView();

sponsor.setId(dto.getId());
sponsor.setHomePageUrl(dto.getHomePageUrl());
sponsor.setLogoPath(dto.getLogoPath());
sponsor.setName(dto.getName());
if(dto.getSponsorLevelBean() != null) {
sponsor.setSponsorLevelDesc(dto.getSponsorLevelBean().getFullDesc());
}

return sponsor;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.ioextendedgr.web.builder;

import com.ioextendedgr.web.data.SponsorLevel;
import com.ioextendedgr.web.viewDto.SponsorLevelView;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class SponsorLevelBuilder {

public static Collection<SponsorLevelView> build(Collection<SponsorLevel> dtos) {
List<SponsorLevelView> sponsorLevelViews = new ArrayList<>();

for (SponsorLevel sponsorLevel : dtos) {
sponsorLevelViews.add(build(sponsorLevel));
}

return sponsorLevelViews;
}

public static SponsorLevelView build(SponsorLevel dto) {
SponsorLevelView sponsorLevelView = new SponsorLevelView();

sponsorLevelView.setId(dto.getId());
sponsorLevelView.setFullDesc(dto.getFullDesc());

if(dto.getConference() != null) {
sponsorLevelView.setConferenceName(dto.getConference().getName());
}

return sponsorLevelView;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package com.ioextendedgr.web.controller;


import com.ioextendedgr.web.data.Conference;
import com.ioextendedgr.web.data.Sponsor;
import com.ioextendedgr.web.service.ConferenceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.beans.PropertyEditorSupport;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

@Controller
@PreAuthorize("hasAuthority('ADMIN')")
@RequestMapping("/admin/sponsor")
public class AdminSponsorController {

private static final Logger logger = LoggerFactory.getLogger(AdminSponsorController.class);

public static final String SPONSOR_VIEW = "sponsor";

@Autowired
private ConferenceService conferenceService;


@RequestMapping(method = RequestMethod.GET)
public String getSponsorView(ModelMap model) {
model.addAttribute("sponsors", conferenceService.findAllSponsors());
model.addAttribute("sponsorLevels", conferenceService.findAllSponsorLevels());
return SPONSOR_VIEW;
}

@RequestMapping(method = RequestMethod.POST)
public String addSponsor(Sponsor sponsor, BindingResult result) {
if(result.hasErrors()){
logger.info(result.getAllErrors().toString());
}
conferenceService.addSponsor(sponsor);
return "redirect:" + SPONSOR_VIEW;
}

@RequestMapping(method = RequestMethod.DELETE)
public String deleteSponsor(@RequestParam Integer id) {
conferenceService.deleteSponsor(id);
return "redirect:" + SPONSOR_VIEW;
}

@RequestMapping(method = RequestMethod.PUT)
public String updateSponsor(Sponsor sponsor, BindingResult result) {
conferenceService.updateSponsor(sponsor);
return "redirect:" + SPONSOR_VIEW;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.ioextendedgr.web.repository;

import com.ioextendedgr.web.data.Sponsor;
import com.ioextendedgr.web.data.SponsorLevel;
import org.springframework.data.jpa.repository.JpaRepository;

public interface SponsorLevelRepository extends JpaRepository<SponsorLevel, Integer>{

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.ioextendedgr.web.repository;

import com.ioextendedgr.web.data.Company;
import com.ioextendedgr.web.data.Sponsor;
import org.springframework.data.jpa.repository.JpaRepository;

public interface SponsorRepository extends JpaRepository<Sponsor, Integer>{

}
64 changes: 49 additions & 15 deletions src/main/java/com/ioextendedgr/web/service/ConferenceService.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
package com.ioextendedgr.web.service;

import java.util.Collection;


import com.google.common.base.Strings;
import com.ioextendedgr.web.builder.*;
import com.ioextendedgr.web.data.ConferenceSession;
import com.ioextendedgr.web.data.Presenter;
import com.ioextendedgr.web.data.*;
import com.ioextendedgr.web.repository.*;
import com.ioextendedgr.web.util.StubFactory;
import com.ioextendedgr.web.viewDto.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.google.common.base.Strings;
import com.ioextendedgr.web.data.Conference;
import com.ioextendedgr.web.data.ConferenceSession;
import com.ioextendedgr.web.repository.ConferenceRepository;
import com.ioextendedgr.web.repository.ConferenceSessionRepository;
import com.ioextendedgr.web.repository.LocationRepository;
import com.ioextendedgr.web.repository.PresenterRepository;
import com.ioextendedgr.web.repository.RoomRepository;
import com.ioextendedgr.web.data.Location;
import com.ioextendedgr.web.util.StubFactory;
import java.util.Collection;

@Component
public class ConferenceService {
Expand All @@ -46,6 +35,12 @@ public class ConferenceService {
@Autowired
private CompanyRepository companyRepository;

@Autowired
private SponsorRepository sponsorRepository;

@Autowired
private SponsorLevelRepository sponsorLevelRepository;

public Collection<CompanyView> findAllCompanies(){
return CompanyBuilder.build(companyRepository.findAll());
}
Expand Down Expand Up @@ -197,4 +192,43 @@ public Collection<RoomView> findAllRooms(){
public RoomView findRoomById(Integer id) {
return RoomViewBuilder.build(roomRepository.findOne(id));
}

public Collection<SponsorView> findAllSponsors() {
return SponsorBuilder.build(sponsorRepository.findAll());
}

public SponsorView findSponsorById(Integer id) {
return SponsorBuilder.build(sponsorRepository.findOne(id));
}

public void deleteSponsor(Integer id){
sponsorRepository.delete(id);
}

public void addSponsor(Sponsor sponsor){
sponsorRepository.save(sponsor);
}

public void updateSponsor(Sponsor inputSponsor){
Sponsor managedSponsor = sponsorRepository.findOne(inputSponsor.getId());
if(!Strings.isNullOrEmpty(inputSponsor.getHomePageUrl())){
managedSponsor.setHomePageUrl(inputSponsor.getHomePageUrl());
}
if(!Strings.isNullOrEmpty(inputSponsor.getLogoPath())){
managedSponsor.setLogoPath(inputSponsor.getLogoPath());
}
if(!Strings.isNullOrEmpty(inputSponsor.getName())){
managedSponsor.setName(inputSponsor.getName());
}
if(inputSponsor.getSponsorLevelBean() != null && inputSponsor.getSponsorLevelBean().getId() != null){
SponsorLevel sponsorLevel = new SponsorLevel();
sponsorLevel.setId(inputSponsor.getSponsorLevelBean().getId());
managedSponsor.setSponsorLevelBean(sponsorLevel);
}
sponsorRepository.save(managedSponsor);
}

public Collection<SponsorLevelView> findAllSponsorLevels(){
return SponsorLevelBuilder.build(sponsorLevelRepository.findAll());
}
}
33 changes: 33 additions & 0 deletions src/main/java/com/ioextendedgr/web/viewDto/SponsorLevelView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.ioextendedgr.web.viewDto;


public class SponsorLevelView {

private Integer id;
private String fullDesc;
private String conferenceName;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getFullDesc() {
return fullDesc;
}

public void setFullDesc(String fullDesc) {
this.fullDesc = fullDesc;
}

public String getConferenceName() {
return conferenceName;
}

public void setConferenceName(String conferenceName) {
this.conferenceName = conferenceName;
}
}
51 changes: 51 additions & 0 deletions src/main/java/com/ioextendedgr/web/viewDto/SponsorView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.ioextendedgr.web.viewDto;


public class SponsorView {

private Integer id;
private String homePageUrl;
private String logoPath;
private String name;
private String sponsorLevelDesc;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getHomePageUrl() {
return homePageUrl;
}

public void setHomePageUrl(String homePageUrl) {
this.homePageUrl = homePageUrl;
}

public String getLogoPath() {
return logoPath;
}

public void setLogoPath(String logoPath) {
this.logoPath = logoPath;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSponsorLevelDesc() {
return sponsorLevelDesc;
}

public void setSponsorLevelDesc(String sponsorLevelDesc) {
this.sponsorLevelDesc = sponsorLevelDesc;
}
}
1 change: 1 addition & 0 deletions src/main/resources/templates/fragments/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
<a href="/admin/conference">Conference</a>
<a href="/admin/conference_session">Conference Session</a>
<a href="/admin/presenter">Presenter</a>
<a href="/admin/sponsor">Sponsor</a>
</nav>
4 changes: 2 additions & 2 deletions src/main/resources/templates/presenter.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,13 @@ <h3>Add a New Presenter</h3>

Short Bio:<input type="text" name="shortBio" /><br/>
Job Title:<input type="text" name="jobTitle" /><br/>
<br/>
Company:
<select name="company.id">
<option th:each="company : ${companies}"
th:value="${company.id}"
th:text="${company.name}"></option>
</select><br/>
Company:

<input type="submit" value="Add" /><br/>
</form>

Expand Down
Loading

0 comments on commit 8006ce3

Please sign in to comment.