From 91b9831915f6e71d23dce5b989b0e4b2e6561fc1 Mon Sep 17 00:00:00 2001 From: Koushal Jain Date: Thu, 8 May 2025 00:30:53 +0530 Subject: [PATCH] git commit -m "Added endpoints, model, schema, and services for pet attributes" --- .../controller/PetTypeController.java | 31 ++++++++++ .../samples/petclinic/model/PetTypes.java | 61 +++++++++++++++++++ .../repository/PetTypeRepository.java | 7 +++ .../petclinic/service/PetTypeService.java | 10 +++ .../petclinic/service/PetTypeServiceImpl.java | 27 ++++++++ src/main/resources/db/migration/pet_types.sql | 7 +++ 6 files changed, 143 insertions(+) create mode 100644 src/main/java/org/springframework/samples/petclinic/controller/PetTypeController.java create mode 100644 src/main/java/org/springframework/samples/petclinic/model/PetTypes.java create mode 100644 src/main/java/org/springframework/samples/petclinic/repository/PetTypeRepository.java create mode 100644 src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java create mode 100644 src/main/java/org/springframework/samples/petclinic/service/PetTypeServiceImpl.java create mode 100644 src/main/resources/db/migration/pet_types.sql diff --git a/src/main/java/org/springframework/samples/petclinic/controller/PetTypeController.java b/src/main/java/org/springframework/samples/petclinic/controller/PetTypeController.java new file mode 100644 index 000000000..cea22c40e --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/controller/PetTypeController.java @@ -0,0 +1,31 @@ +package org.springframework.samples.petclinic.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.samples.petclinic.model.PetTypes; +import org.springframework.samples.petclinic.service.PetTypeService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/api/pettypes") +public class PetTypeController { + + private final PetTypeService petTypeService; + + public PetTypeController(PetTypeService petTypeService) { + this.petTypeService = petTypeService; + } + + @PostMapping + public ResponseEntity createPetType(@RequestBody PetTypes petType) { + PetTypes savedPetType = petTypeService.save(petType); + return ResponseEntity.ok(savedPetType); + } + + @GetMapping + public ResponseEntity> getAllPetTypes() { + List petTypes = petTypeService.findAll(); + return ResponseEntity.ok(petTypes); + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/model/PetTypes.java b/src/main/java/org/springframework/samples/petclinic/model/PetTypes.java new file mode 100644 index 000000000..afb92cbac --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/model/PetTypes.java @@ -0,0 +1,61 @@ +package org.springframework.samples.petclinic.model; + +import jakarta.persistence.*; + +@Entity +@Table(name = "pet_types") +public class PetTypes { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(nullable = false) + private String name; + + private String temperament; + + private Double length; + + private Double weight; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTemperament() { + return temperament; + } + + public void setTemperament(String temperament) { + this.temperament = temperament; + } + + public Double getLength() { + return length; + } + + public void setLength(Double length) { + this.length = length; + } + + public Double getWeight() { + return weight; + } + + public void setWeight(Double weight) { + this.weight = weight; + } +} diff --git a/src/main/java/org/springframework/samples/petclinic/repository/PetTypeRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/PetTypeRepository.java new file mode 100644 index 000000000..7f4339258 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/repository/PetTypeRepository.java @@ -0,0 +1,7 @@ +package org.springframework.samples.petclinic.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.samples.petclinic.model.PetTypes; + +public interface PetTypeRepository extends JpaRepository { +} diff --git a/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java b/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java new file mode 100644 index 000000000..791ee967f --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java @@ -0,0 +1,10 @@ +package org.springframework.samples.petclinic.service; + +import org.springframework.samples.petclinic.model.PetTypes; + +import java.util.List; + +public interface PetTypeService { + PetTypes save(PetTypes petType); + List findAll(); +} diff --git a/src/main/java/org/springframework/samples/petclinic/service/PetTypeServiceImpl.java b/src/main/java/org/springframework/samples/petclinic/service/PetTypeServiceImpl.java new file mode 100644 index 000000000..cd550709a --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/service/PetTypeServiceImpl.java @@ -0,0 +1,27 @@ +package org.springframework.samples.petclinic.service; + +import org.springframework.samples.petclinic.model.PetTypes; +import org.springframework.samples.petclinic.repository.PetTypeRepository; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class PetTypeServiceImpl implements PetTypeService { + + private final PetTypeRepository petTypeRepository; + + public PetTypeServiceImpl(PetTypeRepository petTypeRepository) { + this.petTypeRepository = petTypeRepository; + } + + @Override + public PetTypes save(PetTypes petType) { + return petTypeRepository.save(petType); + } + + @Override + public List findAll() { + return petTypeRepository.findAll(); + } +} diff --git a/src/main/resources/db/migration/pet_types.sql b/src/main/resources/db/migration/pet_types.sql new file mode 100644 index 000000000..a402a3908 --- /dev/null +++ b/src/main/resources/db/migration/pet_types.sql @@ -0,0 +1,7 @@ +CREATE TABLE pet_types ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + name VARCHAR(255) NOT NULL, + temperament VARCHAR(255), + length DOUBLE, + weight DOUBLE, +);