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] 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