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