diff --git a/src/main/java/com/codejam/demo/pojo/PersonalInformation.java b/src/main/java/com/codejam/demo/pojo/PersonalInformation.java new file mode 100644 index 0000000..1e0e434 --- /dev/null +++ b/src/main/java/com/codejam/demo/pojo/PersonalInformation.java @@ -0,0 +1,83 @@ +package com.codejam.demo.pojo; + + +import javax.persistence.*; + + +@Entity +@Table(name = "PERSONAL_INFORMATION") +public class PersonalInformation { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(name = "real_name") + private String real_name; + + @Column(name = "idol_name") + private String idol_name; + + @Column(name = "address") + private String address; + + @Column(name = "idol_status") + private String idol_status; + + public PersonalInformation() { + super(); + // TODO Auto-generated constructor stub + } + + public PersonalInformation(Integer id, String real_name, String idol_name, String address, String idol_status) { + super(); + this.id = id; + this.real_name = real_name; + this.idol_name = idol_name; + this.address = address; + this.idol_status = idol_status; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getReal_name() { + return real_name; + } + + public void setReal_name(String real_name) { + this.real_name = real_name; + } + + public String getIdol_name() { + return idol_name; + } + + public void setIdol_name(String idol_name) { + this.idol_name = idol_name; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getIdol_status() { + return idol_status; + } + + public void setIdol_status(String idol_status) { + this.idol_status = idol_status; + } + + + +} diff --git a/src/main/java/com/codejam/demo/pojo/Revenue.java b/src/main/java/com/codejam/demo/pojo/Revenue.java new file mode 100644 index 0000000..e515d0d --- /dev/null +++ b/src/main/java/com/codejam/demo/pojo/Revenue.java @@ -0,0 +1,71 @@ +package com.codejam.demo.pojo; + + +import javax.persistence.*; + +@Entity +@Table(name = "REVENUE") +public class Revenue { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column + private Integer idol_personal_info_id; + @Column + private String monthly_rate; + @Column + private String date_time; + + + + public Revenue() { + super(); + // TODO Auto-generated constructor stub + } + + + public Revenue(Integer id, Integer idol_personal_info_id, String monthly_rate, String date_time) { + super(); + this.id = id; + this.idol_personal_info_id = idol_personal_info_id; + this.monthly_rate = monthly_rate; + this.date_time = date_time; + } + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getIdol_personal_info_id() { + return idol_personal_info_id; + } + + public void setIdol_personal_info_id(Integer idol_personal_info_id) { + this.idol_personal_info_id = idol_personal_info_id; + } + + public String getMonthly_rate() { + return monthly_rate; + } + + public void setMonthly_rate(String monthly_rate) { + this.monthly_rate = monthly_rate; + } + + public String getDate_time() { + return date_time; + } + + public void setDate_time(String date_time) { + this.date_time = date_time; + } + + +} diff --git a/src/main/java/com/codejam/demo/pojo/Schedule.java b/src/main/java/com/codejam/demo/pojo/Schedule.java new file mode 100644 index 0000000..a79ca0d --- /dev/null +++ b/src/main/java/com/codejam/demo/pojo/Schedule.java @@ -0,0 +1,75 @@ +package com.codejam.demo.pojo; + +import javax.persistence.*; + +@Entity +@Table(name = "SCHEDULE") +public class Schedule { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column + private Integer idol_personal_info_id; + @Column + private String venue; + @Column + private String event_name; + @Column + private String date_time; + + public Schedule() { + super(); + // TODO Auto-generated constructor stub + } + + public Schedule(Integer id, Integer idol_personal_info_id, String venue, String event_name, String date_time) { + super(); + this.id = id; + this.idol_personal_info_id = idol_personal_info_id; + this.venue = venue; + this.event_name = event_name; + this.date_time = date_time; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getIdol_personal_info_id() { + return idol_personal_info_id; + } + + public void setIdol_personal_info_id(Integer idol_personal_info_id) { + this.idol_personal_info_id = idol_personal_info_id; + } + + public String getVenue() { + return venue; + } + + public void setVenue(String venue) { + this.venue = venue; + } + + public String getEvent_name() { + return event_name; + } + + public void setEvent_name(String event_name) { + this.event_name = event_name; + } + + public String getDate_time() { + return date_time; + } + + public void setDate_time(String date_time) { + this.date_time = date_time; + } + +} diff --git a/src/main/java/com/codejam/demo/pojo/TodoResponse.java b/src/main/java/com/codejam/demo/pojo/TodoResponse.java new file mode 100644 index 0000000..833c860 --- /dev/null +++ b/src/main/java/com/codejam/demo/pojo/TodoResponse.java @@ -0,0 +1,82 @@ +package com.codejam.demo.pojo; + + +public class TodoResponse { + private int userId; + private int id; + private String title; + private boolean completed; + + + + public TodoResponse() { + super(); + // TODO Auto-generated constructor stub + } + + + + public TodoResponse(int userId, int id, String title, boolean completed) { + super(); + this.userId = userId; + this.id = id; + this.title = title; + this.completed = completed; + } + + + + public int getUserId() { + return userId; + } + + + + public void setUserId(int userId) { + this.userId = userId; + } + + + + public int getId() { + return id; + } + + + + public void setId(int id) { + this.id = id; + } + + + + public String getTitle() { + return title; + } + + + + public void setTitle(String title) { + this.title = title; + } + + + + public boolean isCompleted() { + return completed; + } + + + + public void setCompleted(boolean completed) { + this.completed = completed; + } + + + + + + + + +} diff --git a/src/main/java/com/codejam/demo/repo/PersonalInfoRepository.java b/src/main/java/com/codejam/demo/repo/PersonalInfoRepository.java new file mode 100644 index 0000000..39949a6 --- /dev/null +++ b/src/main/java/com/codejam/demo/repo/PersonalInfoRepository.java @@ -0,0 +1,22 @@ +package com.codejam.demo.repo; + +import java.util.Optional; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.codejam.demo.pojo.PersonalInformation; + +@Repository +public interface PersonalInfoRepository extends JpaRepository { + + + @Query("SELECT u FROM PersonalInformation u WHERE u.idol_name = :name") + Optional findIdolPersonalInfoByIdolName(@Param("name") String name); + + + @Query(value = "select * from PERSONAL_INFORMATION order by rand() limit 1", nativeQuery = true) + Optional getRandomPersonalInfo(); +} diff --git a/src/main/java/com/codejam/demo/repo/RevenueRepository.java b/src/main/java/com/codejam/demo/repo/RevenueRepository.java new file mode 100644 index 0000000..4d39fe9 --- /dev/null +++ b/src/main/java/com/codejam/demo/repo/RevenueRepository.java @@ -0,0 +1,9 @@ +package com.codejam.demo.repo; + +import com.codejam.demo.pojo.Revenue; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface RevenueRepository extends JpaRepository { +} diff --git a/src/main/java/com/codejam/demo/repo/ScheduleRepository.java b/src/main/java/com/codejam/demo/repo/ScheduleRepository.java new file mode 100644 index 0000000..f413769 --- /dev/null +++ b/src/main/java/com/codejam/demo/repo/ScheduleRepository.java @@ -0,0 +1,9 @@ +package com.codejam.demo.repo; + +import com.codejam.demo.pojo.Schedule; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ScheduleRepository extends JpaRepository { +} diff --git a/src/main/java/com/codejam/demo/service/PersonalInfoService.java b/src/main/java/com/codejam/demo/service/PersonalInfoService.java new file mode 100644 index 0000000..7f768a1 --- /dev/null +++ b/src/main/java/com/codejam/demo/service/PersonalInfoService.java @@ -0,0 +1,17 @@ +package com.codejam.demo.service; + +import com.codejam.demo.pojo.PersonalInformation; + +public interface PersonalInfoService { + + PersonalInformation findById(Integer id) throws Exception; + + PersonalInformation savePersonalInfo(PersonalInformation personalInformation); + + PersonalInformation getRandomPersonalInfo(); + + void deletePersonalInfo(Integer id); + + PersonalInformation updatePersonalInfo(PersonalInformation personalInformation); + +} diff --git a/src/main/java/com/codejam/demo/service/RevenueService.java b/src/main/java/com/codejam/demo/service/RevenueService.java new file mode 100644 index 0000000..c345212 --- /dev/null +++ b/src/main/java/com/codejam/demo/service/RevenueService.java @@ -0,0 +1,16 @@ +package com.codejam.demo.service; + +import com.codejam.demo.pojo.Revenue; + +public interface RevenueService { + + Revenue findById(Integer id); + + Revenue saveRevenue(Revenue revenue); + + Revenue updateRevenue(Revenue revenue); + + void deleteRevenue(Integer id); + + +} \ No newline at end of file diff --git a/src/main/java/com/codejam/demo/service/ScheduleService.java b/src/main/java/com/codejam/demo/service/ScheduleService.java new file mode 100644 index 0000000..6960404 --- /dev/null +++ b/src/main/java/com/codejam/demo/service/ScheduleService.java @@ -0,0 +1,14 @@ +package com.codejam.demo.service; + +import com.codejam.demo.pojo.Schedule; + +public interface ScheduleService { + + Schedule findById(Integer id); + + Schedule saveSchedule(Schedule schedule); + + Schedule updateSchedule(Schedule schedule); + + void deleteSchedule(Integer id); +} diff --git a/src/main/java/com/codejam/demo/service/ToDoService.java b/src/main/java/com/codejam/demo/service/ToDoService.java new file mode 100644 index 0000000..942d9e7 --- /dev/null +++ b/src/main/java/com/codejam/demo/service/ToDoService.java @@ -0,0 +1,35 @@ +package com.codejam.demo.service; + +import java.util.Collections; + +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import com.codejam.demo.pojo.TodoResponse; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class ToDoService { + + private final RestTemplate restTemplate = new RestTemplate(); + + public ToDoService() { + restTemplate.setInterceptors(Collections.singletonList(new ClientHttpReqInterceptor())); + } + + public ResponseEntity getRequest(HttpHeaders headers, String url) { + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + return new ResponseEntity<>(responseEntity.getBody(), responseEntity.getStatusCode()); + } + + public ResponseEntity getRequest(String url) throws Exception { + ResponseEntity responseEntity = restTemplate.getForEntity(url, String.class); + TodoResponse todoResponse = new ObjectMapper().readValue(responseEntity.getBody(), TodoResponse.class); + return new ResponseEntity<>(todoResponse, responseEntity.getStatusCode()); + } + + +} diff --git a/src/main/resources/Data.sql b/src/main/resources/Data.sql index 4156517..4d79c5b 100644 --- a/src/main/resources/Data.sql +++ b/src/main/resources/Data.sql @@ -1,9 +1,9 @@ DROP TABLE IF EXISTS PERSONAL_INFORMATION; -CREATE TABLE PERSONAL_INFORMATION (id int,real_name varchar(50),idol_name varchar(60),address varchar(255),idol_status varchar(25)); +CREATE TABLE PERSONAL_INFORMATION (id int IDENTITY,real_name varchar(50),idol_name varchar(60),address varchar(255),idol_status varchar(25)); DROP TABLE IF EXISTS SCHEDULE; -CREATE TABLE SCHEDULE (id int,venue varchar(50),event_name varchar(60),date_time varchar(50)); +CREATE TABLE SCHEDULE (id int IDENTITY,venue varchar(50),event_name varchar(60),date_time varchar(50)); DROP TABLE IF EXISTS REVENUE; -CREATE TABLE REVENUE (id int,monthly_rate varchar(50),event_name varchar(60),date_time varchar(50)); +CREATE TABLE REVENUE (id int IDENTITY,monthly_rate varchar(50),event_name varchar(60),date_time varchar(50)); INSERT INTO PERSONAL_INFORMATION (id, real_name, idol_name, address, idol_status) VALUES ('1', 'rahimi', 'remy', 'Malaysia', 'ACTIVE'); INSERT INTO SCHEDULE (id, venue, event_name, date_time) VALUES ('1', 'Stadium Bukit Jalil', 'World Tour-2025', '27/05/2025 08:47:59.751000000'); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 9deaf3e..abdade3 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,10 +1,7 @@ - -#Database H2 config spring.datasource.url=jdbc:h2:mem:testdb +spring.datasource.username=sandeep +spring.datasource.password=sandeep spring.h2.console.enabled=true spring.jpa.hibernate.ddl-auto=none spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect - -#logging level -logging.level.org.springframework.web=DEBUG \ No newline at end of file