loot controller: publish loot to redis
This commit is contained in:
@@ -26,14 +26,17 @@
|
|||||||
package net.runelite.http.service.loottracker;
|
package net.runelite.http.service.loottracker;
|
||||||
|
|
||||||
import com.google.api.client.http.HttpStatusCodes;
|
import com.google.api.client.http.HttpStatusCodes;
|
||||||
|
import com.google.gson.Gson;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import net.runelite.http.api.RuneLiteAPI;
|
||||||
import net.runelite.http.api.loottracker.LootAggregate;
|
import net.runelite.http.api.loottracker.LootAggregate;
|
||||||
import net.runelite.http.api.loottracker.LootRecord;
|
import net.runelite.http.api.loottracker.LootRecord;
|
||||||
import net.runelite.http.service.account.AuthFilter;
|
import net.runelite.http.service.account.AuthFilter;
|
||||||
import net.runelite.http.service.account.beans.SessionEntry;
|
import net.runelite.http.service.account.beans.SessionEntry;
|
||||||
|
import net.runelite.http.service.util.redis.RedisPool;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -42,14 +45,20 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import redis.clients.jedis.Jedis;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/loottracker")
|
@RequestMapping("/loottracker")
|
||||||
public class LootTrackerController
|
public class LootTrackerController
|
||||||
{
|
{
|
||||||
|
private static final Gson GSON = RuneLiteAPI.GSON;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private LootTrackerService service;
|
private LootTrackerService service;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisPool redisPool;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AuthFilter auth;
|
private AuthFilter auth;
|
||||||
|
|
||||||
@@ -65,6 +74,11 @@ public class LootTrackerController
|
|||||||
|
|
||||||
service.store(records, e.getUser());
|
service.store(records, e.getUser());
|
||||||
response.setStatus(HttpStatusCodes.STATUS_CODE_OK);
|
response.setStatus(HttpStatusCodes.STATUS_CODE_OK);
|
||||||
|
|
||||||
|
try (Jedis jedis = redisPool.getResource())
|
||||||
|
{
|
||||||
|
jedis.publish("drops", GSON.toJson(records));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import net.runelite.http.api.loottracker.LootRecord;
|
|||||||
import net.runelite.http.api.loottracker.LootRecordType;
|
import net.runelite.http.api.loottracker.LootRecordType;
|
||||||
import net.runelite.http.service.account.AuthFilter;
|
import net.runelite.http.service.account.AuthFilter;
|
||||||
import net.runelite.http.service.account.beans.SessionEntry;
|
import net.runelite.http.service.account.beans.SessionEntry;
|
||||||
|
import net.runelite.http.service.util.redis.RedisPool;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -53,6 +54,7 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
import org.springframework.test.web.servlet.MockMvc;
|
import org.springframework.test.web.servlet.MockMvc;
|
||||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
import redis.clients.jedis.Jedis;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@WebMvcTest(LootTrackerController.class)
|
@WebMvcTest(LootTrackerController.class)
|
||||||
@@ -68,11 +70,16 @@ public class LootTrackerControllerTest
|
|||||||
@MockBean
|
@MockBean
|
||||||
private AuthFilter authFilter;
|
private AuthFilter authFilter;
|
||||||
|
|
||||||
|
@MockBean
|
||||||
|
private RedisPool redisPool;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() throws IOException
|
public void before() throws IOException
|
||||||
{
|
{
|
||||||
when(authFilter.handle(any(HttpServletRequest.class), any(HttpServletResponse.class)))
|
when(authFilter.handle(any(HttpServletRequest.class), any(HttpServletResponse.class)))
|
||||||
.thenReturn(mock(SessionEntry.class));
|
.thenReturn(mock(SessionEntry.class));
|
||||||
|
|
||||||
|
when(redisPool.getResource()).thenReturn(mock(Jedis.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user