From 87f3e6abda51933d47179716f28a4bb87a841ae8 Mon Sep 17 00:00:00 2001 From: Wanster <54368212+Wanster690@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:36:09 +0300 Subject: [PATCH 1/3] Add files via upload --- TaskAPI/pom.xml | 53 +++++++++++ .../src/main/java/org/example/TaskAPI.java | 90 ++++++++++++++++++ .../main/java/org/example/TaskRepository.java | 6 ++ .../src/main/resources/application.properties | 5 + TaskAPI/target/classes/application.properties | 5 + .../classes/org/example/TaskAPI$Task.class | Bin 0 -> 1376 bytes .../target/classes/org/example/TaskAPI.class | Bin 0 -> 3387 bytes .../classes/org/example/TaskRepository.class | Bin 0 -> 415 bytes 8 files changed, 159 insertions(+) create mode 100644 TaskAPI/pom.xml create mode 100644 TaskAPI/src/main/java/org/example/TaskAPI.java create mode 100644 TaskAPI/src/main/java/org/example/TaskRepository.java create mode 100644 TaskAPI/src/main/resources/application.properties create mode 100644 TaskAPI/target/classes/application.properties create mode 100644 TaskAPI/target/classes/org/example/TaskAPI$Task.class create mode 100644 TaskAPI/target/classes/org/example/TaskAPI.class create mode 100644 TaskAPI/target/classes/org/example/TaskRepository.class diff --git a/TaskAPI/pom.xml b/TaskAPI/pom.xml new file mode 100644 index 0000000..529934e --- /dev/null +++ b/TaskAPI/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + org.example + TaskAPI + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-parent + 3.2.5 + + + + 20 + 20 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.postgresql + postgresql + runtime + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.data + spring-data-jpa + 3.2.5 + + + + \ No newline at end of file diff --git a/TaskAPI/src/main/java/org/example/TaskAPI.java b/TaskAPI/src/main/java/org/example/TaskAPI.java new file mode 100644 index 0000000..3a5b75d --- /dev/null +++ b/TaskAPI/src/main/java/org/example/TaskAPI.java @@ -0,0 +1,90 @@ +package org.example; + +import jakarta.persistence.*; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.Optional; + +@SpringBootApplication +@RestController +public class TaskAPI { + + @Autowired + private TaskRepository taskRepository; + + @Entity + public static class Task { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String title; + private String description; + + public Task(String title, String description) { + this.title = title; + this.description = description; + } + + public Task() { + } + + public Long getId() { + return id; + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setDescription(String description) { + this.description = description; + } + } + + // Получение задания по id + @GetMapping("/tasks/{taskId}") + public Task getTask(@PathVariable Long taskId) { + return taskRepository.findById(taskId).orElse(null); + } + + // Получение всех заданий + @GetMapping("/tasks") + public List getTasks() { + return taskRepository.findAll(); + } + + // Добавление нового задания + @PostMapping("/tasks") + public Task createTask(@RequestBody Task newTask) { + return taskRepository.save(newTask); + } + + // Удаление задания по id + @DeleteMapping("/tasks/{taskId}") + public String deleteTaskById(@PathVariable Long taskId) { + Optional taskToDelete = taskRepository.findById(taskId); + + if (taskToDelete.isPresent()) { + Task task = taskToDelete.get(); + taskRepository.deleteById(taskId); + return "Удалена задача с id: " + task.getId() + " и названием: " + task.getTitle(); + } else { + return "Задача с id " + taskId + " не найдена."; + } + } + + public static void main(String[] args) { + SpringApplication.run(TaskAPI.class, args); + } +} \ No newline at end of file diff --git a/TaskAPI/src/main/java/org/example/TaskRepository.java b/TaskAPI/src/main/java/org/example/TaskRepository.java new file mode 100644 index 0000000..61b6716 --- /dev/null +++ b/TaskAPI/src/main/java/org/example/TaskRepository.java @@ -0,0 +1,6 @@ +package org.example; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TaskRepository extends JpaRepository { +} \ No newline at end of file diff --git a/TaskAPI/src/main/resources/application.properties b/TaskAPI/src/main/resources/application.properties new file mode 100644 index 0000000..c743646 --- /dev/null +++ b/TaskAPI/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks +spring.datasource.username=Wanster +spring.datasource.password=6254 +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/TaskAPI/target/classes/application.properties b/TaskAPI/target/classes/application.properties new file mode 100644 index 0000000..c743646 --- /dev/null +++ b/TaskAPI/target/classes/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks +spring.datasource.username=Wanster +spring.datasource.password=6254 +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/TaskAPI/target/classes/org/example/TaskAPI$Task.class b/TaskAPI/target/classes/org/example/TaskAPI$Task.class new file mode 100644 index 0000000000000000000000000000000000000000..4892f99b77a925989011ac51c8d77e2f2744d254 GIT binary patch literal 1376 zcmah}+fEZv6kVtHmQtWx@_`1jf(hXK8h$)3!dIo~x!7 zNWHclTkint4cX}{hGl$h?Dpk<5X@J<>;;JG z{=s3rT0aq3D-D$!w)(H9+z?3Yxh;-ntY$mvu-`pZUR|;oGc30$I}PdC#txkceP*+} z`PzNMX5r%>ls{I3X+9+}PkVvZ z33Z%$tnve*vVMhhW#bB?-vYoQWf2L=dCCQ3v4{d5@&hanV0eTjS|kY4h~S$^6k`OC zHQCK0f~+Y@lXaWggeFban_T8s3i2h0H97KwpfHDE&rd=E>zd#@#=kN&#?k=853EFj zSFjoZPTvKuMS`D3f=BOy*CWBtu*UjK-#gT%#Z)lqyNz4i%kzL?W)O8f+*CN+Wnz>3 zH=zGZ1na}(UDFLnp&^O1hDK-tdu(SeEAQ!xWm9ISba!E3 zd_*AQ@ohquZP)N@XGP#(ek`tOd!)s_3Xxo`pAT?`PrNNbvl0au?eygv! zu7FhW3^RM9>>0MDo4GXhVqX$18usIWK(jBkiG?xR&Q;Tu0>^gN8UZDjM4P~Yt)4RY z4h4dW=%9u-a7ZAjJRUGj8t#m`mp5F`54~N(TgtD5t1n6A>k$ndI4aO!xZ{p=rNtZ& z`djMkZ4I61;(kt&x_3=u)HP-NxP}urDUdEnQ+hH0Y+qbx(`mFKtKk&h5vZe91?{@0 zzTUiT%@M>_ysP01&N2yPn=(9;aBcQr(sK;*HnXzMX*iEQf&Gj6f*i7~qVCNY-aOx2 zPq#c*pf~D{ZzGb=P*Vt)@5Z`vft*s_FVL|~MT|fim+)Q^mo*GvP@r2S%`GcOXB~Y} zF5AvRwqV;{cG4#fl*^_;Z&^Ep*{SeZh?*HPb=S?^j`KB6bJ4audC$u-@L6N7;^+la zMof^bj&lO76BWxd7Ui_z8j8oVY|r(xL|mDLo%%@-qSRC@DvXX! z%XdjPD=OHmGUsN$3aox3aCkGg>$Wzb-22K_$8~Rh4LREN`$1V`&rTY1mhM#?y3w=N zo&Ky*{ocPbMwb*yf!}P~q9b*WNl{ReMHzDse*31*V=ESO6Pl_mjAEmQUte`0a6#Eo)+md$0mQeG?FQ!)Ji zgZHjUPcJU8e!}WM_sU2FPHt3QVo^6ZC|Ww>=E5|)PoG$)Uk>T(f&$$mB3HY;Sn+h zO0Vly$&_wK-nJJiS~gwsDl*(5l{LWp6H;vHOP)~*QtCnZ!dq?_iX;mKSI%K{gx zzf>PoSF68QA6B1NSKF(Pxgp`j58S-C-)@vHw2SuYlXi8=!{7LPUVTFDKX{M=uRC4U zAGgXVk>}NifzVUx^Og57;UktM9sjE$33Ec_KMBsPquaoY!zhXG1P;BNm6Ig^loyQ@ zuX}*tllM2SL)_JKy%Mgx1afzkyDV41wXXXy#IJm*!End~?7}s^D+Of0b&PNocpo1i z;R_FwTN!HZet_ihr`S~k@d$hVLhCB2QB4@l=+??c#z!VOl*0+C#JLOwi*?)@H1-9C~9El(u+Wn9cHJFYuHA8J5;o~s6 zL2{|+GGTOY)*vRb;Yehe^~f@~1$w_0*)6J3IZ%;(!e0>C%tmCN@=)M2^oO<|(sF{d zz71qYPdvimpK*lCG5RqUo^;pXT-z|t zo99iOCY&n0-Q;V-0ent}Yq{@R527zjPa}Hp1$4Sp;JGS?fKnu-L`n+cADm9|;u@1k zxgPG8L^fa+bJU=!u$QY!WU4vU{R9_hHVRSwaRHN(WLh?gF@<>;q=)wA`C5lNeAZyW t2U>}l+%NKH@t2_bR@i*Y@TAP$lK;GiFG*`At(9SXg$8_$Z}B}^{{xbVm)HOR literal 0 HcmV?d00001 diff --git a/TaskAPI/target/classes/org/example/TaskRepository.class b/TaskAPI/target/classes/org/example/TaskRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..a092d10d54da2c6600e04effb169f4da0b29ed56 GIT binary patch literal 415 zcmbV|&q~8U5XQf$)oo(cN-yHsvwQLs6+{p!0mb?PV_lb|>F%wtgYdB@9Y_W?8Y(^5&sb zlUiVlaMErC=L@5sJkQjN^;7xCHOtbm^xp`1?f3^sNXCUWTsK}3ntUCd<^RH-F4tBy zT-=V1S}obiiQF2Uoo9q}Y#TpOS49<{82*-g+`dHUkBm|Nvf>a_5ZECctlRW;LSQda k{+JTFEjyY;*od(iO-JlR%pLTQENhDGSkpM~V;2J?pBkck5&!@I literal 0 HcmV?d00001 -- 2.45.2 From 11ca734d07c5a7f9cf5a53f000c3ab0fc6050247 Mon Sep 17 00:00:00 2001 From: Wanster <54368212+Wanster690@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:36:38 +0300 Subject: [PATCH 2/3] Delete TaskAPI directory --- TaskAPI/pom.xml | 53 ----------- .../src/main/java/org/example/TaskAPI.java | 90 ------------------ .../main/java/org/example/TaskRepository.java | 6 -- .../src/main/resources/application.properties | 5 - TaskAPI/target/classes/application.properties | 5 - .../classes/org/example/TaskAPI$Task.class | Bin 1376 -> 0 bytes .../target/classes/org/example/TaskAPI.class | Bin 3387 -> 0 bytes .../classes/org/example/TaskRepository.class | Bin 415 -> 0 bytes 8 files changed, 159 deletions(-) delete mode 100644 TaskAPI/pom.xml delete mode 100644 TaskAPI/src/main/java/org/example/TaskAPI.java delete mode 100644 TaskAPI/src/main/java/org/example/TaskRepository.java delete mode 100644 TaskAPI/src/main/resources/application.properties delete mode 100644 TaskAPI/target/classes/application.properties delete mode 100644 TaskAPI/target/classes/org/example/TaskAPI$Task.class delete mode 100644 TaskAPI/target/classes/org/example/TaskAPI.class delete mode 100644 TaskAPI/target/classes/org/example/TaskRepository.class diff --git a/TaskAPI/pom.xml b/TaskAPI/pom.xml deleted file mode 100644 index 529934e..0000000 --- a/TaskAPI/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - 4.0.0 - - org.example - TaskAPI - 1.0-SNAPSHOT - - - org.springframework.boot - spring-boot-starter-parent - 3.2.5 - - - - 20 - 20 - UTF-8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - - org.postgresql - postgresql - runtime - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.data - spring-data-jpa - 3.2.5 - - - - \ No newline at end of file diff --git a/TaskAPI/src/main/java/org/example/TaskAPI.java b/TaskAPI/src/main/java/org/example/TaskAPI.java deleted file mode 100644 index 3a5b75d..0000000 --- a/TaskAPI/src/main/java/org/example/TaskAPI.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.example; - -import jakarta.persistence.*; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.web.bind.annotation.*; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import java.util.Optional; - -@SpringBootApplication -@RestController -public class TaskAPI { - - @Autowired - private TaskRepository taskRepository; - - @Entity - public static class Task { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - private String title; - private String description; - - public Task(String title, String description) { - this.title = title; - this.description = description; - } - - public Task() { - } - - public Long getId() { - return id; - } - - public String getTitle() { - return title; - } - - public String getDescription() { - return description; - } - - public void setTitle(String title) { - this.title = title; - } - - public void setDescription(String description) { - this.description = description; - } - } - - // Получение задания по id - @GetMapping("/tasks/{taskId}") - public Task getTask(@PathVariable Long taskId) { - return taskRepository.findById(taskId).orElse(null); - } - - // Получение всех заданий - @GetMapping("/tasks") - public List getTasks() { - return taskRepository.findAll(); - } - - // Добавление нового задания - @PostMapping("/tasks") - public Task createTask(@RequestBody Task newTask) { - return taskRepository.save(newTask); - } - - // Удаление задания по id - @DeleteMapping("/tasks/{taskId}") - public String deleteTaskById(@PathVariable Long taskId) { - Optional taskToDelete = taskRepository.findById(taskId); - - if (taskToDelete.isPresent()) { - Task task = taskToDelete.get(); - taskRepository.deleteById(taskId); - return "Удалена задача с id: " + task.getId() + " и названием: " + task.getTitle(); - } else { - return "Задача с id " + taskId + " не найдена."; - } - } - - public static void main(String[] args) { - SpringApplication.run(TaskAPI.class, args); - } -} \ No newline at end of file diff --git a/TaskAPI/src/main/java/org/example/TaskRepository.java b/TaskAPI/src/main/java/org/example/TaskRepository.java deleted file mode 100644 index 61b6716..0000000 --- a/TaskAPI/src/main/java/org/example/TaskRepository.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.example; - -import org.springframework.data.jpa.repository.JpaRepository; - -public interface TaskRepository extends JpaRepository { -} \ No newline at end of file diff --git a/TaskAPI/src/main/resources/application.properties b/TaskAPI/src/main/resources/application.properties deleted file mode 100644 index c743646..0000000 --- a/TaskAPI/src/main/resources/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks -spring.datasource.username=Wanster -spring.datasource.password=6254 -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect -spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/TaskAPI/target/classes/application.properties b/TaskAPI/target/classes/application.properties deleted file mode 100644 index c743646..0000000 --- a/TaskAPI/target/classes/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks -spring.datasource.username=Wanster -spring.datasource.password=6254 -spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect -spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/TaskAPI/target/classes/org/example/TaskAPI$Task.class b/TaskAPI/target/classes/org/example/TaskAPI$Task.class deleted file mode 100644 index 4892f99b77a925989011ac51c8d77e2f2744d254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmah}+fEZv6kVtHmQtWx@_`1jf(hXK8h$)3!dIo~x!7 zNWHclTkint4cX}{hGl$h?Dpk<5X@J<>;;JG z{=s3rT0aq3D-D$!w)(H9+z?3Yxh;-ntY$mvu-`pZUR|;oGc30$I}PdC#txkceP*+} z`PzNMX5r%>ls{I3X+9+}PkVvZ z33Z%$tnve*vVMhhW#bB?-vYoQWf2L=dCCQ3v4{d5@&hanV0eTjS|kY4h~S$^6k`OC zHQCK0f~+Y@lXaWggeFban_T8s3i2h0H97KwpfHDE&rd=E>zd#@#=kN&#?k=853EFj zSFjoZPTvKuMS`D3f=BOy*CWBtu*UjK-#gT%#Z)lqyNz4i%kzL?W)O8f+*CN+Wnz>3 zH=zGZ1na}(UDFLnp&^O1hDK-tdu(SeEAQ!xWm9ISba!E3 zd_*AQ@ohquZP)N@XGP#(ek`tOd!)s_3Xxo`pAT?`PrNNbvl0au?eygv! zu7FhW3^RM9>>0MDo4GXhVqX$18usIWK(jBkiG?xR&Q;Tu0>^gN8UZDjM4P~Yt)4RY z4h4dW=%9u-a7ZAjJRUGj8t#m`mp5F`54~N(TgtD5t1n6A>k$ndI4aO!xZ{p=rNtZ& z`djMkZ4I61;(kt&x_3=u)HP-NxP}urDUdEnQ+hH0Y+qbx(`mFKtKk&h5vZe91?{@0 zzTUiT%@M>_ysP01&N2yPn=(9;aBcQr(sK;*HnXzMX*iEQf&Gj6f*i7~qVCNY-aOx2 zPq#c*pf~D{ZzGb=P*Vt)@5Z`vft*s_FVL|~MT|fim+)Q^mo*GvP@r2S%`GcOXB~Y} zF5AvRwqV;{cG4#fl*^_;Z&^Ep*{SeZh?*HPb=S?^j`KB6bJ4audC$u-@L6N7;^+la zMof^bj&lO76BWxd7Ui_z8j8oVY|r(xL|mDLo%%@-qSRC@DvXX! z%XdjPD=OHmGUsN$3aox3aCkGg>$Wzb-22K_$8~Rh4LREN`$1V`&rTY1mhM#?y3w=N zo&Ky*{ocPbMwb*yf!}P~q9b*WNl{ReMHzDse*31*V=ESO6Pl_mjAEmQUte`0a6#Eo)+md$0mQeG?FQ!)Ji zgZHjUPcJU8e!}WM_sU2FPHt3QVo^6ZC|Ww>=E5|)PoG$)Uk>T(f&$$mB3HY;Sn+h zO0Vly$&_wK-nJJiS~gwsDl*(5l{LWp6H;vHOP)~*QtCnZ!dq?_iX;mKSI%K{gx zzf>PoSF68QA6B1NSKF(Pxgp`j58S-C-)@vHw2SuYlXi8=!{7LPUVTFDKX{M=uRC4U zAGgXVk>}NifzVUx^Og57;UktM9sjE$33Ec_KMBsPquaoY!zhXG1P;BNm6Ig^loyQ@ zuX}*tllM2SL)_JKy%Mgx1afzkyDV41wXXXy#IJm*!End~?7}s^D+Of0b&PNocpo1i z;R_FwTN!HZet_ihr`S~k@d$hVLhCB2QB4@l=+??c#z!VOl*0+C#JLOwi*?)@H1-9C~9El(u+Wn9cHJFYuHA8J5;o~s6 zL2{|+GGTOY)*vRb;Yehe^~f@~1$w_0*)6J3IZ%;(!e0>C%tmCN@=)M2^oO<|(sF{d zz71qYPdvimpK*lCG5RqUo^;pXT-z|t zo99iOCY&n0-Q;V-0ent}Yq{@R527zjPa}Hp1$4Sp;JGS?fKnu-L`n+cADm9|;u@1k zxgPG8L^fa+bJU=!u$QY!WU4vU{R9_hHVRSwaRHN(WLh?gF@<>;q=)wA`C5lNeAZyW t2U>}l+%NKH@t2_bR@i*Y@TAP$lK;GiFG*`At(9SXg$8_$Z}B}^{{xbVm)HOR diff --git a/TaskAPI/target/classes/org/example/TaskRepository.class b/TaskAPI/target/classes/org/example/TaskRepository.class deleted file mode 100644 index a092d10d54da2c6600e04effb169f4da0b29ed56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 415 zcmbV|&q~8U5XQf$)oo(cN-yHsvwQLs6+{p!0mb?PV_lb|>F%wtgYdB@9Y_W?8Y(^5&sb zlUiVlaMErC=L@5sJkQjN^;7xCHOtbm^xp`1?f3^sNXCUWTsK}3ntUCd<^RH-F4tBy zT-=V1S}obiiQF2Uoo9q}Y#TpOS49<{82*-g+`dHUkBm|Nvf>a_5ZECctlRW;LSQda k{+JTFEjyY;*od(iO-JlR%pLTQENhDGSkpM~V;2J?pBkck5&!@I -- 2.45.2 From 38d208ea5a09cda617c861fe9622dc8b87e20c7a Mon Sep 17 00:00:00 2001 From: Wanster <54368212+Wanster690@users.noreply.github.com> Date: Fri, 5 Jul 2024 03:37:54 +0300 Subject: [PATCH 3/3] Add files via upload --- pom.xml | 69 +++++++++------ src/main/java/org/example/TaskAPI.java | 79 ++++++++++-------- src/main/java/org/example/TaskRepository.java | 6 ++ src/main/resources/application.properties | 5 ++ target/classes/application.properties | 5 ++ target/classes/org/example/TaskAPI$Task.class | Bin 0 -> 1376 bytes target/classes/org/example/TaskAPI.class | Bin 0 -> 3387 bytes .../classes/org/example/TaskRepository.class | Bin 0 -> 415 bytes 8 files changed, 104 insertions(+), 60 deletions(-) create mode 100644 src/main/java/org/example/TaskRepository.java create mode 100644 src/main/resources/application.properties create mode 100644 target/classes/application.properties create mode 100644 target/classes/org/example/TaskAPI$Task.class create mode 100644 target/classes/org/example/TaskAPI.class create mode 100644 target/classes/org/example/TaskRepository.class diff --git a/pom.xml b/pom.xml index d254d86..529934e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,36 +1,53 @@ - -4.0.0 -org.example -TaskAPI -1.0-SNAPSHOT + 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.2.5 - + org.example + TaskAPI + 1.0-SNAPSHOT - - 20 - 20 - UTF-8 - - - - + org.springframework.boot - spring-boot-starter-web - + spring-boot-starter-parent + 3.2.5 + - - org.springframework.boot - spring-boot-starter-test - test - - + + 20 + 20 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.postgresql + postgresql + runtime + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.data + spring-data-jpa + 3.2.5 + + \ No newline at end of file diff --git a/src/main/java/org/example/TaskAPI.java b/src/main/java/org/example/TaskAPI.java index eb01224..3a5b75d 100644 --- a/src/main/java/org/example/TaskAPI.java +++ b/src/main/java/org/example/TaskAPI.java @@ -1,79 +1,90 @@ package org.example; +import jakarta.persistence.*; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.Optional; @SpringBootApplication @RestController public class TaskAPI { + @Autowired + private TaskRepository taskRepository; + + @Entity public static class Task { - private int id; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; private String title; private String description; - - public Task(int id, String title, String description) { - this.id = id; + public Task(String title, String description) { this.title = title; this.description = description; - } - - public void setId(int id) { - this.id = id; + public Task() { } - public int getId() { + public Long getId() { return id; } - public String getTitle(){return title;} + public String getTitle() { + return title; + } - public String getDescription(){return description;} + public String getDescription() { + return description; + } - } - - - private List tasks = new ArrayList<>(); - - public TaskAPI() { - tasks.add(new Task(1, "Задание №1", "Описание задания №1")); - tasks.add(new Task(2, "Задание №2", "Описание задания №2")); - tasks.add(new Task(3, "Задание №3", "Описание задания №3")); + public void setTitle(String title) { + this.title = title; + } + public void setDescription(String description) { + this.description = description; + } } // Получение задания по id @GetMapping("/tasks/{taskId}") - public Task getTask(@PathVariable int taskId) { - return tasks.stream() - .filter(task -> task.getId() == taskId) - .findFirst() - .orElseThrow(() -> new RuntimeException("Задание не найдено")); + public Task getTask(@PathVariable Long taskId) { + return taskRepository.findById(taskId).orElse(null); } // Получение всех заданий @GetMapping("/tasks") public List getTasks() { - return tasks; + return taskRepository.findAll(); } - //добавление задания + // Добавление нового задания @PostMapping("/tasks") public Task createTask(@RequestBody Task newTask) { - newTask.setId(tasks.size() + 1); - tasks.add(newTask); - return newTask; + return taskRepository.save(newTask); + } + + // Удаление задания по id + @DeleteMapping("/tasks/{taskId}") + public String deleteTaskById(@PathVariable Long taskId) { + Optional taskToDelete = taskRepository.findById(taskId); + + if (taskToDelete.isPresent()) { + Task task = taskToDelete.get(); + taskRepository.deleteById(taskId); + return "Удалена задача с id: " + task.getId() + " и названием: " + task.getTitle(); + } else { + return "Задача с id " + taskId + " не найдена."; + } } public static void main(String[] args) { SpringApplication.run(TaskAPI.class, args); } -} - +} \ No newline at end of file diff --git a/src/main/java/org/example/TaskRepository.java b/src/main/java/org/example/TaskRepository.java new file mode 100644 index 0000000..61b6716 --- /dev/null +++ b/src/main/java/org/example/TaskRepository.java @@ -0,0 +1,6 @@ +package org.example; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TaskRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..c743646 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks +spring.datasource.username=Wanster +spring.datasource.password=6254 +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..c743646 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1,5 @@ +spring.datasource.url=jdbc:postgresql://localhost:5432/Tasks +spring.datasource.username=Wanster +spring.datasource.password=6254 +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect +spring.jpa.hibernate.ddl-auto=update \ No newline at end of file diff --git a/target/classes/org/example/TaskAPI$Task.class b/target/classes/org/example/TaskAPI$Task.class new file mode 100644 index 0000000000000000000000000000000000000000..4892f99b77a925989011ac51c8d77e2f2744d254 GIT binary patch literal 1376 zcmah}+fEZv6kVtHmQtWx@_`1jf(hXK8h$)3!dIo~x!7 zNWHclTkint4cX}{hGl$h?Dpk<5X@J<>;;JG z{=s3rT0aq3D-D$!w)(H9+z?3Yxh;-ntY$mvu-`pZUR|;oGc30$I}PdC#txkceP*+} z`PzNMX5r%>ls{I3X+9+}PkVvZ z33Z%$tnve*vVMhhW#bB?-vYoQWf2L=dCCQ3v4{d5@&hanV0eTjS|kY4h~S$^6k`OC zHQCK0f~+Y@lXaWggeFban_T8s3i2h0H97KwpfHDE&rd=E>zd#@#=kN&#?k=853EFj zSFjoZPTvKuMS`D3f=BOy*CWBtu*UjK-#gT%#Z)lqyNz4i%kzL?W)O8f+*CN+Wnz>3 zH=zGZ1na}(UDFLnp&^O1hDK-tdu(SeEAQ!xWm9ISba!E3 zd_*AQ@ohquZP)N@XGP#(ek`tOd!)s_3Xxo`pAT?`PrNNbvl0au?eygv! zu7FhW3^RM9>>0MDo4GXhVqX$18usIWK(jBkiG?xR&Q;Tu0>^gN8UZDjM4P~Yt)4RY z4h4dW=%9u-a7ZAjJRUGj8t#m`mp5F`54~N(TgtD5t1n6A>k$ndI4aO!xZ{p=rNtZ& z`djMkZ4I61;(kt&x_3=u)HP-NxP}urDUdEnQ+hH0Y+qbx(`mFKtKk&h5vZe91?{@0 zzTUiT%@M>_ysP01&N2yPn=(9;aBcQr(sK;*HnXzMX*iEQf&Gj6f*i7~qVCNY-aOx2 zPq#c*pf~D{ZzGb=P*Vt)@5Z`vft*s_FVL|~MT|fim+)Q^mo*GvP@r2S%`GcOXB~Y} zF5AvRwqV;{cG4#fl*^_;Z&^Ep*{SeZh?*HPb=S?^j`KB6bJ4audC$u-@L6N7;^+la zMof^bj&lO76BWxd7Ui_z8j8oVY|r(xL|mDLo%%@-qSRC@DvXX! z%XdjPD=OHmGUsN$3aox3aCkGg>$Wzb-22K_$8~Rh4LREN`$1V`&rTY1mhM#?y3w=N zo&Ky*{ocPbMwb*yf!}P~q9b*WNl{ReMHzDse*31*V=ESO6Pl_mjAEmQUte`0a6#Eo)+md$0mQeG?FQ!)Ji zgZHjUPcJU8e!}WM_sU2FPHt3QVo^6ZC|Ww>=E5|)PoG$)Uk>T(f&$$mB3HY;Sn+h zO0Vly$&_wK-nJJiS~gwsDl*(5l{LWp6H;vHOP)~*QtCnZ!dq?_iX;mKSI%K{gx zzf>PoSF68QA6B1NSKF(Pxgp`j58S-C-)@vHw2SuYlXi8=!{7LPUVTFDKX{M=uRC4U zAGgXVk>}NifzVUx^Og57;UktM9sjE$33Ec_KMBsPquaoY!zhXG1P;BNm6Ig^loyQ@ zuX}*tllM2SL)_JKy%Mgx1afzkyDV41wXXXy#IJm*!End~?7}s^D+Of0b&PNocpo1i z;R_FwTN!HZet_ihr`S~k@d$hVLhCB2QB4@l=+??c#z!VOl*0+C#JLOwi*?)@H1-9C~9El(u+Wn9cHJFYuHA8J5;o~s6 zL2{|+GGTOY)*vRb;Yehe^~f@~1$w_0*)6J3IZ%;(!e0>C%tmCN@=)M2^oO<|(sF{d zz71qYPdvimpK*lCG5RqUo^;pXT-z|t zo99iOCY&n0-Q;V-0ent}Yq{@R527zjPa}Hp1$4Sp;JGS?fKnu-L`n+cADm9|;u@1k zxgPG8L^fa+bJU=!u$QY!WU4vU{R9_hHVRSwaRHN(WLh?gF@<>;q=)wA`C5lNeAZyW t2U>}l+%NKH@t2_bR@i*Y@TAP$lK;GiFG*`At(9SXg$8_$Z}B}^{{xbVm)HOR literal 0 HcmV?d00001 diff --git a/target/classes/org/example/TaskRepository.class b/target/classes/org/example/TaskRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..a092d10d54da2c6600e04effb169f4da0b29ed56 GIT binary patch literal 415 zcmbV|&q~8U5XQf$)oo(cN-yHsvwQLs6+{p!0mb?PV_lb|>F%wtgYdB@9Y_W?8Y(^5&sb zlUiVlaMErC=L@5sJkQjN^;7xCHOtbm^xp`1?f3^sNXCUWTsK}3ntUCd<^RH-F4tBy zT-=V1S}obiiQF2Uoo9q}Y#TpOS49<{82*-g+`dHUkBm|Nvf>a_5ZECctlRW;LSQda k{+JTFEjyY;*od(iO-JlR%pLTQENhDGSkpM~V;2J?pBkck5&!@I literal 0 HcmV?d00001 -- 2.45.2