From c4f5863ce087d6cca8a59568e07deac32ba92d0d Mon Sep 17 00:00:00 2001 From: floxx2112 Date: Tue, 18 Apr 2023 16:35:39 +0200 Subject: [PATCH] add Script/tag link --- .../controller/ScriptController.java | 12 ++- .../assistDbBackend/model/LinkScriptTag.java | 22 ++++ .../service/ScriptsService.java | 101 +++++++++++++++++- src/main/resources/application.properties | 8 +- 4 files changed, 133 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/apside/assistDbBackend/model/LinkScriptTag.java diff --git a/src/main/java/com/apside/assistDbBackend/controller/ScriptController.java b/src/main/java/com/apside/assistDbBackend/controller/ScriptController.java index 738a45b..c8536d5 100644 --- a/src/main/java/com/apside/assistDbBackend/controller/ScriptController.java +++ b/src/main/java/com/apside/assistDbBackend/controller/ScriptController.java @@ -1,5 +1,6 @@ package com.apside.assistDbBackend.controller; +import com.apside.assistDbBackend.model.LinkScriptTag; import com.apside.assistDbBackend.model.Script; import com.apside.assistDbBackend.service.ScriptsService; import org.eclipse.jgit.api.errors.GitAPIException; @@ -21,6 +22,11 @@ public class ScriptController { return scriptsService.retrieveScripts(); } + @GetMapping("/scripts/link") + public List getAllLinkScriptsTags() throws IOException, GitAPIException { + return scriptsService.getAllScriptTag(); + } + @DeleteMapping("/script/delete/{name}") public void deleteScript(@PathVariable("name") final String name){ scriptsService.deleteOneScript(name); @@ -28,14 +34,16 @@ public class ScriptController { @GetMapping("/script/add") - public void addScript(@RequestParam("content") String content, @RequestParam("name") String name) throws IOException, GitAPIException, URISyntaxException { + public void addScript(@RequestParam("content") String content, @RequestParam("name") String name, @RequestParam("tagList") List tagsList, @RequestParam("linkid") int linkId) throws IOException, GitAPIException, URISyntaxException { scriptsService.addOneScript(content, name); + scriptsService.addOneLink(name, tagsList, linkId); } @GetMapping("/script/edit") - public void editScript(@RequestParam("content") String content, @RequestParam("defaultname") String defaultName, @RequestParam("newname") String newName) throws IOException, GitAPIException, URISyntaxException { + public void editScript(@RequestParam("content") String content, @RequestParam("defaultname") String defaultName, @RequestParam("newname") String newName, @RequestParam("tagList") List tagsList, @RequestParam("linkid") int linkId) throws IOException, GitAPIException, URISyntaxException { scriptsService.simpleDeleteScript(defaultName); scriptsService.addOneScript(content, newName); + scriptsService.updateOneLink(newName, tagsList, linkId); } diff --git a/src/main/java/com/apside/assistDbBackend/model/LinkScriptTag.java b/src/main/java/com/apside/assistDbBackend/model/LinkScriptTag.java new file mode 100644 index 0000000..c816271 --- /dev/null +++ b/src/main/java/com/apside/assistDbBackend/model/LinkScriptTag.java @@ -0,0 +1,22 @@ +package com.apside.assistDbBackend.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class LinkScriptTag { + private int id; + + private String scriptName; + + private List tags; + + public void LinkScriptTag(){} + + public LinkScriptTag(int id, String scriptName, List tags){ + this.id = id; + this.scriptName = scriptName; + this.tags = tags; + } +} diff --git a/src/main/java/com/apside/assistDbBackend/service/ScriptsService.java b/src/main/java/com/apside/assistDbBackend/service/ScriptsService.java index 4a26efb..90e3d0f 100644 --- a/src/main/java/com/apside/assistDbBackend/service/ScriptsService.java +++ b/src/main/java/com/apside/assistDbBackend/service/ScriptsService.java @@ -1,5 +1,6 @@ package com.apside.assistDbBackend.service; +import com.apside.assistDbBackend.model.LinkScriptTag; import com.apside.assistDbBackend.model.Script; import lombok.Data; import org.eclipse.jgit.api.Git; @@ -9,6 +10,8 @@ import org.eclipse.jgit.api.errors.TransportException; import org.eclipse.jgit.transport.PushResult; import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; +import org.json.JSONArray; +import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.info.ProjectInfoProperties; @@ -21,15 +24,31 @@ import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; +import java.nio.file.Paths; +import java.util.*; @Data @Service public class ScriptsService { + private final String linkScriptTagPath; + private final Path pathOfLink; + private String allScriptsContent; + private JSONObject dataGlobalScripts; + private JSONArray dataLinkScriptsTags; + + public ScriptsService() throws IOException { + linkScriptTagPath = new File(System.getProperty("user.dir")).getParent() + "/AssistDB_AdditionalFiles/scripts.json"; + pathOfLink = Paths.get(linkScriptTagPath); + } + + private void initialize() throws IOException { + allScriptsContent = new String((Files.readAllBytes(pathOfLink))); + dataGlobalScripts = new JSONObject(allScriptsContent); + dataLinkScriptsTags = dataGlobalScripts.getJSONArray("data"); + System.out.println(dataLinkScriptsTags); + } + public List