Skip to content

Commit

Permalink
feat(main-api): 방이 가지고 있는 내부 아이피를 반환하는 api
Browse files Browse the repository at this point in the history
  • Loading branch information
inferior3x committed Jan 13, 2025
1 parent 90f5382 commit c1c35d0
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.whoz_in.main_api.query.private_ip;

import com.whoz_in.main_api.query.shared.application.Response;
import java.util.List;

public record PrivateIpList(
List<String> ipList
) implements Response {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.whoz_in.main_api.query.private_ip;

import com.whoz_in.main_api.query.shared.application.Query;

public record PrivateIpListGet(
String room
) implements Query {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.whoz_in.main_api.query.private_ip;

import com.whoz_in.main_api.query.shared.application.QueryHandler;
import com.whoz_in.main_api.shared.application.Handler;
import com.whoz_in.main_api.shared.caching.private_ip.PrivateIpStore;
import lombok.RequiredArgsConstructor;

@Handler
@RequiredArgsConstructor
public class PrivateIpListGetHandler implements QueryHandler<PrivateIpListGet, PrivateIpList> {
private final PrivateIpStore privateIpStore;
@Override
public PrivateIpList handle(PrivateIpListGet query) {
return new PrivateIpList(privateIpStore.get(query.room()).values().stream()
.toList());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.whoz_in.main_api.query.private_ip;

import com.whoz_in.main_api.query.shared.application.QueryBus;
import com.whoz_in.main_api.query.shared.presentation.QueryController;
import com.whoz_in.main_api.shared.presentation.CrudResponseCode;
import com.whoz_in.main_api.shared.presentation.ResponseEntityGenerator;
import com.whoz_in.main_api.shared.presentation.SuccessBody;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1")
public class PrivateIpQueryController extends QueryController {
public PrivateIpQueryController(QueryBus queryBus) {
super(queryBus);
}

@GetMapping("/private-ip/{room}")
public ResponseEntity<SuccessBody<PrivateIpList>> getPrivateIps(@PathVariable String room){
return ResponseEntityGenerator.success(ask(new PrivateIpListGet(room)), CrudResponseCode.READ);
}
}

0 comments on commit c1c35d0

Please sign in to comment.