Skip to content

Commit

Permalink
refactor: 방어 로직 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
aiaiaiai1 committed Sep 14, 2023
1 parent 8df60ee commit 147d760
Showing 1 changed file with 15 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static org.apache.coyote.http11.HttpStatus.OK;

import java.util.Map;
import java.util.Objects;
import nextstep.jwp.db.InMemoryUserRepository;
import nextstep.jwp.model.User;
import org.apache.coyote.http11.HttpRequest;
Expand All @@ -14,17 +15,30 @@

public class RegisterController extends AbstractController {
private static final Logger log = LoggerFactory.getLogger(RegisterController.class);
public static final int LOGIN_QUERY_PARAMS = 3;

@Override
protected void doPost(HttpRequest request, HttpResponse response) throws Exception {
protected void doPost(HttpRequest request, HttpResponse response) {
Map<String, String> queryParms = Utils.parseToQueryParms(request.getBody());

validateQueryParms(queryParms);
User user = new User(queryParms.get("account"), queryParms.get("password"),
queryParms.get("email"));

InMemoryUserRepository.save(user);
response.setStatus(FOUND);
response.setRedirectUrl("/index.html");
}

private void validateQueryParms(Map<String, String> queryParms) {
long count = queryParms.entrySet().stream()
.filter(entry -> Objects.nonNull(entry.getValue()))
.count();
if (count != LOGIN_QUERY_PARAMS) {
throw new IllegalArgumentException();
}
}

@Override
protected void doGet(HttpRequest request, HttpResponse response) throws Exception {
response.setStatus(OK);
Expand Down

0 comments on commit 147d760

Please sign in to comment.