diff --git a/http-service/src/main/java/net/runelite/http/service/examine/ExamineController.java b/http-service/src/main/java/net/runelite/http/service/examine/ExamineController.java new file mode 100644 index 0000000000..0bcfee9c8f --- /dev/null +++ b/http-service/src/main/java/net/runelite/http/service/examine/ExamineController.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2017, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.http.service.examine; + +import static net.runelite.http.service.examine.ExamineType.ITEM; +import static net.runelite.http.service.examine.ExamineType.NPC; +import static net.runelite.http.service.examine.ExamineType.OBJECT; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import static org.springframework.web.bind.annotation.RequestMethod.POST; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/examine") +public class ExamineController +{ + private final ExamineService examineService; + + @Autowired + public ExamineController(ExamineService examineService) + { + this.examineService = examineService; + } + + @RequestMapping("/npc/{id}") + public String getNpc(@PathVariable int id) + { + return examineService.get(NPC, id); + } + + @RequestMapping("/object/{id}") + public String getObject(@PathVariable int id) + { + return examineService.get(OBJECT, id); + } + + @RequestMapping("/item/{id}") + public String getItem(@PathVariable int id) + { + return examineService.get(ITEM, id); + } + + @RequestMapping(path = "/npc/{id}", method = POST) + public void submitNpc(@PathVariable int id, @RequestBody String examine) + { + examineService.insert(NPC, id, examine); + } + + @RequestMapping(path = "/object/{id}", method = POST) + public void submitObject(@PathVariable int id, @RequestBody String examine) + { + examineService.insert(OBJECT, id, examine); + } + + @RequestMapping(path = "/item/{id}", method = POST) + public void submitItem(@PathVariable int id, @RequestBody String examine) + { + examineService.insert(ITEM, id, examine); + } +} diff --git a/http-service/src/main/java/net/runelite/http/service/examine/ExamineService.java b/http-service/src/main/java/net/runelite/http/service/examine/ExamineService.java index 8fc31b6e22..c7fa265eea 100644 --- a/http-service/src/main/java/net/runelite/http/service/examine/ExamineService.java +++ b/http-service/src/main/java/net/runelite/http/service/examine/ExamineService.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Adam + * Copyright (c) 2019, Adam * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -26,27 +26,15 @@ package net.runelite.http.service.examine; import java.sql.Timestamp; import java.time.Instant; -import static net.runelite.http.service.examine.ExamineType.ITEM; -import static net.runelite.http.service.examine.ExamineType.NPC; -import static net.runelite.http.service.examine.ExamineType.OBJECT; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import static org.springframework.web.bind.annotation.RequestMethod.POST; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.stereotype.Service; import org.sql2o.Connection; import org.sql2o.Sql2o; -@RestController -@RequestMapping("/examine") +@Service public class ExamineService { - private static final Logger logger = LoggerFactory.getLogger(ExamineService.class); - private static final String CREATE_EXAMINE = "CREATE TABLE IF NOT EXISTS `examine` (\n" + " `type` enum('OBJECT','NPC','ITEM') NOT NULL,\n" + " `id` int(11) NOT NULL,\n" @@ -70,43 +58,7 @@ public class ExamineService } } - @RequestMapping("/npc/{id}") - public String getNpc(@PathVariable int id) - { - return get(NPC, id); - } - - @RequestMapping("/object/{id}") - public String getObject(@PathVariable int id) - { - return get(OBJECT, id); - } - - @RequestMapping("/item/{id}") - public String getItem(@PathVariable int id) - { - return get(ITEM, id); - } - - @RequestMapping(path = "/npc/{id}", method = POST) - public void submitNpc(@PathVariable int id, @RequestBody String examine) - { - insert(NPC, id, examine); - } - - @RequestMapping(path = "/object/{id}", method = POST) - public void submitObject(@PathVariable int id, @RequestBody String examine) - { - insert(OBJECT, id, examine); - } - - @RequestMapping(path = "/item/{id}", method = POST) - public void submitItem(@PathVariable int id, @RequestBody String examine) - { - insert(ITEM, id, examine); - } - - private String get(ExamineType type, int id) + public String get(ExamineType type, int id) { try (Connection con = sql2o.open()) { @@ -125,7 +77,7 @@ public class ExamineService return null; } - private void insert(ExamineType type, int id, String examine) + public void insert(ExamineType type, int id, String examine) { try (Connection con = sql2o.open()) {