parent
bd23448f42
commit
8e1bd3a7a8
@ -0,0 +1,44 @@ |
|||||||
|
package com.apside.assistDbBackend.controller; |
||||||
|
|
||||||
|
import com.apside.assistDbBackend.model.InfoColumn; |
||||||
|
import com.apside.assistDbBackend.model.Tag; |
||||||
|
import com.apside.assistDbBackend.service.TagsService; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
@RestController |
||||||
|
@RequestMapping("/api") |
||||||
|
public class TagsController { |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private TagsService tagsService; |
||||||
|
|
||||||
|
@GetMapping("/tags/all") |
||||||
|
public List<Tag> getTags() throws IOException { |
||||||
|
return tagsService.getAllTags(); |
||||||
|
} |
||||||
|
|
||||||
|
/*@DeleteMapping("/tags/deleteAll") |
||||||
|
public void deleteAllTags() { |
||||||
|
tagsService.deleteAllTags(); |
||||||
|
}*/ |
||||||
|
|
||||||
|
@DeleteMapping("/tag/delete/{nameTag}") |
||||||
|
public void deleteTag(@PathVariable("nameTag") final String nameTag) throws IOException { |
||||||
|
tagsService.deleteTag(nameTag); |
||||||
|
} |
||||||
|
|
||||||
|
@PostMapping("/tag/add") |
||||||
|
public void addTag(@RequestBody Tag tag) throws IOException { |
||||||
|
tagsService.addTag(tag); |
||||||
|
} |
||||||
|
|
||||||
|
@PutMapping("/tag/update/{prevTag}") |
||||||
|
public void updateTag(@PathVariable("prevTag") final String prevTag, @RequestBody Tag tag) throws IOException { |
||||||
|
tagsService.updateTag(prevTag, tag); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
package com.apside.assistDbBackend.model; |
||||||
|
|
||||||
|
import jakarta.persistence.*; |
||||||
|
import lombok.Builder; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class Tag { |
||||||
|
|
||||||
|
private int tagId; |
||||||
|
|
||||||
|
private String nameTag; |
||||||
|
|
||||||
|
private String descriptionTag; |
||||||
|
|
||||||
|
public Tag(){} |
||||||
|
|
||||||
|
public Tag(int tagId, String nameTag, String descriptionTag){ |
||||||
|
this.tagId = tagId; |
||||||
|
this.nameTag = nameTag; |
||||||
|
this.descriptionTag = descriptionTag; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,105 @@ |
|||||||
|
package com.apside.assistDbBackend.service; |
||||||
|
|
||||||
|
import com.apside.assistDbBackend.model.Tag; |
||||||
|
import lombok.Data; |
||||||
|
import org.json.JSONArray; |
||||||
|
import org.json.JSONObject; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.FileWriter; |
||||||
|
import java.io.IOException; |
||||||
|
import java.nio.file.Files; |
||||||
|
import java.nio.file.Path; |
||||||
|
import java.nio.file.Paths; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Objects; |
||||||
|
import java.util.Optional; |
||||||
|
|
||||||
|
@Data |
||||||
|
@Service |
||||||
|
public class TagsService { |
||||||
|
|
||||||
|
private final String tempDirectoryPath; |
||||||
|
private final Path path; |
||||||
|
private String jsonContent; |
||||||
|
private JSONObject dataGlobal; |
||||||
|
private JSONArray data; |
||||||
|
public TagsService() throws IOException { |
||||||
|
tempDirectoryPath = new File(System.getProperty("user.dir")).getParent() + "/AssistDB_AdditionalFiles/tags.json"; |
||||||
|
path = Paths.get(tempDirectoryPath); |
||||||
|
} |
||||||
|
|
||||||
|
private void initialize() throws IOException { |
||||||
|
jsonContent = new String(Files.readAllBytes(path)); |
||||||
|
dataGlobal = new JSONObject(jsonContent); |
||||||
|
data = dataGlobal.getJSONArray("data"); |
||||||
|
} |
||||||
|
|
||||||
|
public List<Tag> getAllTags() throws IOException { |
||||||
|
initialize(); |
||||||
|
List<Tag> listOfTag = new ArrayList<>(); |
||||||
|
for (int i=0; i<data.length(); i++){ |
||||||
|
JSONObject tag = data.getJSONObject(i); |
||||||
|
int tagId = tag.getInt("tagId"); |
||||||
|
String tagName = tag.getString("tag"); |
||||||
|
String tagDescription = tag.getString("description"); |
||||||
|
Tag tempTag = new Tag(tagId, tagName, tagDescription); |
||||||
|
listOfTag.add(tempTag); |
||||||
|
} |
||||||
|
return listOfTag; |
||||||
|
} |
||||||
|
|
||||||
|
public void deleteTag(final String deleteNameTag) throws IOException { |
||||||
|
initialize(); |
||||||
|
JSONArray newArr = new JSONArray(); |
||||||
|
for (int i=0; i<data.length(); i++) { |
||||||
|
JSONObject tag = data.getJSONObject(i); |
||||||
|
String tagName = tag.getString("tag"); |
||||||
|
if(!Objects.equals(tagName, deleteNameTag)){ |
||||||
|
newArr.put(tag); |
||||||
|
} |
||||||
|
} |
||||||
|
System.out.println(newArr); |
||||||
|
JSONObject newObj = dataGlobal.put("data", newArr); |
||||||
|
Files.write(path, newObj.toString().getBytes()); |
||||||
|
} |
||||||
|
|
||||||
|
/*public void deleteAllTags() { |
||||||
|
tagsRepository.deleteAll(); |
||||||
|
}*/ |
||||||
|
|
||||||
|
public void addTag(Tag tag) throws IOException { |
||||||
|
initialize(); |
||||||
|
JSONObject newTag = new JSONObject(); |
||||||
|
newTag.put("tagId", tag.getTagId()); |
||||||
|
newTag.put("tag", tag.getNameTag().toString()); |
||||||
|
newTag.put("description", tag.getDescriptionTag().toString()); |
||||||
|
JSONArray newArr = data.put(newTag); |
||||||
|
JSONObject newObj = dataGlobal.put("data", newArr); |
||||||
|
Files.write(path, newObj.toString().getBytes()); |
||||||
|
|
||||||
|
} |
||||||
|
public void updateTag(final String prevTag, Tag modTag) throws IOException { |
||||||
|
initialize(); |
||||||
|
JSONArray newArr = new JSONArray(); |
||||||
|
for (int i=0; i<data.length(); i++) { |
||||||
|
JSONObject tag = data.getJSONObject(i); |
||||||
|
String tagName = tag.getString("tag"); |
||||||
|
if(!Objects.equals(tagName, prevTag)){ |
||||||
|
newArr.put(tag); |
||||||
|
} else { |
||||||
|
JSONObject newTag = new JSONObject(); |
||||||
|
newTag.put("tagId", modTag.getTagId()); |
||||||
|
newTag.put("tag", modTag.getNameTag().toString()); |
||||||
|
newTag.put("description", modTag.getDescriptionTag().toString()); |
||||||
|
newArr.put(newTag); |
||||||
|
} |
||||||
|
} |
||||||
|
JSONObject newObj = dataGlobal.put("data", newArr); |
||||||
|
Files.write(path, newObj.toString().getBytes()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue