feat: implement doctor schedule module, add detail fields to doctor profile, and integrate new appointment API client
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package vn.sis.appointment;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
final class FormData {
|
||||
private static final int MAX_REQUEST_BYTES = 256 * 1024;
|
||||
|
||||
private FormData() {
|
||||
}
|
||||
|
||||
static Map<String, String> read(HttpExchange exchange) throws IOException {
|
||||
byte[] data = exchange.getRequestBody().readNBytes(MAX_REQUEST_BYTES + 1);
|
||||
if (data.length > MAX_REQUEST_BYTES) {
|
||||
throw new IllegalArgumentException("Du lieu gui len vuot qua gioi han 256 KB.");
|
||||
}
|
||||
|
||||
String body = new String(data, StandardCharsets.UTF_8);
|
||||
Map<String, String> result = new LinkedHashMap<>();
|
||||
if (body.isBlank()) {
|
||||
return result;
|
||||
}
|
||||
|
||||
for (String pair : body.split("&")) {
|
||||
int separator = pair.indexOf('=');
|
||||
String rawKey = separator >= 0 ? pair.substring(0, separator) : pair;
|
||||
String rawValue = separator >= 0 ? pair.substring(separator + 1) : "";
|
||||
result.put(decode(rawKey), decode(rawValue));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static String decode(String value) {
|
||||
return URLDecoder.decode(value, StandardCharsets.UTF_8);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user