From b230d9dd3c8dd3b9cf2d48d980e56db7dba996c9 Mon Sep 17 00:00:00 2001 From: Lim Han Date: Wed, 4 Feb 2015 23:56:41 +0800 Subject: [PATCH] LH :: Updated pets page --- .../petclinic/repository/PetRepository.java | 7 ++ .../jdbc/JdbcPetRepositoryImpl.java | 25 ++++ .../repository/jpa/JpaPetRepositoryImpl.java | 7 ++ .../petclinic/rest/PetRestController.java | 13 +-- .../petclinic/service/ClinicService.java | 3 + .../petclinic/service/ClinicServiceImpl.java | 8 +- src/main/resources/cache/ehcache.xml | 10 ++ .../webapp/components/dashboard/_pets.html | 10 +- src/main/webapp/components/header.html | 2 +- .../webapp/components/landing/_services.html | 4 +- .../webapp/components/main/MainController.js | 8 ++ src/main/webapp/components/owners/owners.html | 14 +-- .../webapp/components/pets/PetController.js | 4 +- src/main/webapp/components/pets/pets.html | 110 ++---------------- src/main/webapp/images/pets/pet1.jpg | Bin 0 -> 8311 bytes src/main/webapp/images/pets/pet10.jpg | Bin 0 -> 13244 bytes src/main/webapp/images/pets/pet2.jpg | Bin 0 -> 8148 bytes src/main/webapp/images/pets/pet3.jpg | Bin 0 -> 10259 bytes src/main/webapp/images/pets/pet4.jpg | Bin 0 -> 8357 bytes src/main/webapp/images/pets/pet5.jpg | Bin 0 -> 10266 bytes src/main/webapp/images/pets/pet6.jpg | Bin 0 -> 17107 bytes src/main/webapp/images/pets/pet7.jpg | Bin 0 -> 16681 bytes src/main/webapp/images/pets/pet8.jpg | Bin 0 -> 7905 bytes src/main/webapp/images/pets/pet9.jpg | Bin 0 -> 12940 bytes src/main/webapp/services/services.js | 6 +- 25 files changed, 94 insertions(+), 137 deletions(-) create mode 100644 src/main/webapp/images/pets/pet1.jpg create mode 100644 src/main/webapp/images/pets/pet10.jpg create mode 100644 src/main/webapp/images/pets/pet2.jpg create mode 100644 src/main/webapp/images/pets/pet3.jpg create mode 100644 src/main/webapp/images/pets/pet4.jpg create mode 100644 src/main/webapp/images/pets/pet5.jpg create mode 100644 src/main/webapp/images/pets/pet6.jpg create mode 100644 src/main/webapp/images/pets/pet7.jpg create mode 100644 src/main/webapp/images/pets/pet8.jpg create mode 100644 src/main/webapp/images/pets/pet9.jpg diff --git a/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java index 693b2e5e9..c47e72ff4 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/PetRepository.java @@ -57,5 +57,12 @@ public interface PetRepository { * @see BaseEntity#isNew */ void save(Pet pet) throws DataAccessException; + + /** + * Get all pets + * @return + * + */ + List findAll() throws DataAccessException; } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java index c594ead1b..f15bff055 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jdbc/JdbcPetRepositoryImpl.java @@ -15,15 +15,19 @@ */ package org.springframework.samples.petclinic.repository.jdbc; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.sql.DataSource; +import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper; @@ -130,4 +134,25 @@ public class JdbcPetRepositoryImpl implements PetRepository { .addValue("owner_id", pet.getOwner().getId()); } + @SuppressWarnings("unchecked") + @Override + public List findAll() throws DataAccessException { + return this.namedParameterJdbcTemplate.query("SELECT * FROM pets", new RowMapper(){ + + @Override + public Pet mapRow(ResultSet rs, int idx) throws SQLException { + Pet pet = new Pet(); + PetType type = new PetType(); + type.setId(rs.getInt("type_id")); + pet.setName(rs.getString("name")); + pet.setId(rs.getInt("id")); + pet.setBirthDate(new DateTime(rs.getDate("birth_date"))); + pet.setType(type); + + return pet; + } + + }); + } + } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java index 84d564da4..9173869ed 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/jpa/JpaPetRepositoryImpl.java @@ -20,6 +20,7 @@ import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import org.springframework.dao.DataAccessException; import org.springframework.samples.petclinic.model.Pet; import org.springframework.samples.petclinic.model.PetType; import org.springframework.samples.petclinic.repository.PetRepository; @@ -61,4 +62,10 @@ public class JpaPetRepositoryImpl implements PetRepository { } } + @SuppressWarnings("unchecked") + @Override + public List findAll() throws DataAccessException { + return this.em.createQuery("SELECT pet FROM Pet pet").getResultList(); + } + } diff --git a/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java b/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java index 89ddcbd9d..603255618 100644 --- a/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java +++ b/src/main/java/org/springframework/samples/petclinic/rest/PetRestController.java @@ -56,16 +56,9 @@ public class PetRestController { return pet; } - @RequestMapping(value = "/owners/{ownerId}/pets", method = RequestMethod.PUT) - public Collection addPets(@PathVariable("ownerId") int ownerId, @RequestBody Collection pets) { - Owner owner = this.clinicService.findOwnerById(ownerId); - - for(Pet pet : pets) { - owner.addPet(pet); - this.clinicService.savePet(pet); - } - - return pets; + @RequestMapping(value = "/pets", method = RequestMethod.GET) + public Collection findAllPets() { + return this.clinicService.findPets(); } } diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java index e72b5c10f..4221fe531 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicService.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.service; import java.util.Collection; +import java.util.List; import org.springframework.dao.DataAccessException; import org.springframework.samples.petclinic.model.Owner; @@ -48,4 +49,6 @@ public interface ClinicService { Collection findOwnerByLastName(String lastName) throws DataAccessException; + List findPets() throws DataAccessException; + } diff --git a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java index 0d7ff4d0c..012c9fe46 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java +++ b/src/main/java/org/springframework/samples/petclinic/service/ClinicServiceImpl.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.service; import java.util.Collection; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; @@ -105,5 +106,10 @@ public class ClinicServiceImpl implements ClinicService { return vetRepository.findAll(); } - + @Override + @Transactional(readOnly = true) + @Cacheable(value = "pets") + public List findPets() throws DataAccessException { + return petRepository.findAll(); + } } diff --git a/src/main/resources/cache/ehcache.xml b/src/main/resources/cache/ehcache.xml index 32e509953..29e40f7d3 100644 --- a/src/main/resources/cache/ehcache.xml +++ b/src/main/resources/cache/ehcache.xml @@ -13,5 +13,15 @@ diskPersistent="false" diskExpiryThreadIntervalSeconds="1" memoryStoreEvictionPolicy="LRU"/> + + diff --git a/src/main/webapp/components/dashboard/_pets.html b/src/main/webapp/components/dashboard/_pets.html index 64fcb7a87..7ef48f652 100644 --- a/src/main/webapp/components/dashboard/_pets.html +++ b/src/main/webapp/components/dashboard/_pets.html @@ -4,7 +4,7 @@
- Generic placeholder image + Generic placeholder image

Basil

08 August 2012

@@ -14,7 +14,7 @@
- Generic placeholder image + Generic placeholder image

Basil

08 August 2012

@@ -24,7 +24,7 @@
- Generic placeholder image + Generic placeholder image

Basil

08 August 2012

@@ -34,7 +34,7 @@
- Generic placeholder image + Generic placeholder image

Basil

08 August 2012

@@ -46,7 +46,7 @@
diff --git a/src/main/webapp/components/header.html b/src/main/webapp/components/header.html index ec69821c9..a662703eb 100644 --- a/src/main/webapp/components/header.html +++ b/src/main/webapp/components/header.html @@ -14,7 +14,7 @@