Basic Client with login and logout
This commit is contained in:
parent
197d1525fe
commit
6390c2ae97
45
src/main/java/ley/untis/UntisClient.java
Normal file
45
src/main/java/ley/untis/UntisClient.java
Normal file
|
@ -0,0 +1,45 @@
|
|||
package ley.untis;
|
||||
|
||||
import com.googlecode.jsonrpc4j.JsonRpcHttpClient;
|
||||
import ley.untis.data.AuthParams;
|
||||
import ley.untis.data.AuthResponse;
|
||||
import ley.untis.exception.APIRequestException;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class UntisClient {
|
||||
|
||||
JsonRpcHttpClient client;
|
||||
public AuthResponse auth;
|
||||
Map<String , String> header;
|
||||
|
||||
public UntisClient(String username, String password, String url, String school, String appname) throws APIRequestException{
|
||||
try {
|
||||
client = new JsonRpcHttpClient(new URL(url + "?school=" + school));
|
||||
|
||||
auth = client.invoke("authenticate", new AuthParams(username, password, appname), AuthResponse.class);
|
||||
header = new HashMap<>();
|
||||
header.put("cookie", "JSESSIONID=" + auth.sessionId);
|
||||
client.setHeaders(header);
|
||||
} catch (Throwable e) {
|
||||
throw new APIRequestException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public UntisClient(String username, String password, String url, String school) throws APIRequestException{
|
||||
this(username, password, url, school, "JavaUntis");
|
||||
}
|
||||
|
||||
public void logout() throws APIRequestException {
|
||||
try {
|
||||
client.invoke("logout", new Object[0], Object.class);
|
||||
} catch (Throwable e) {
|
||||
throw new APIRequestException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
15
src/main/java/ley/untis/data/AuthParams.java
Normal file
15
src/main/java/ley/untis/data/AuthParams.java
Normal file
|
@ -0,0 +1,15 @@
|
|||
package ley.untis.data;
|
||||
|
||||
public class AuthParams {
|
||||
|
||||
public String user;
|
||||
public String password;
|
||||
public String client;
|
||||
|
||||
public AuthParams(String user, String password, String client) {
|
||||
this.user = user;
|
||||
this.password = password;
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
}
|
10
src/main/java/ley/untis/data/AuthResponse.java
Normal file
10
src/main/java/ley/untis/data/AuthResponse.java
Normal file
|
@ -0,0 +1,10 @@
|
|||
package ley.untis.data;
|
||||
|
||||
public class AuthResponse {
|
||||
|
||||
public String sessionId;
|
||||
public int personType;
|
||||
public int personId;
|
||||
public int klasseId;
|
||||
|
||||
}
|
20
src/main/java/ley/untis/exception/APIRequestException.java
Normal file
20
src/main/java/ley/untis/exception/APIRequestException.java
Normal file
|
@ -0,0 +1,20 @@
|
|||
package ley.untis.exception;
|
||||
|
||||
public class APIRequestException extends Exception {
|
||||
|
||||
Throwable source;
|
||||
|
||||
public APIRequestException(Throwable error) {
|
||||
source = error;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return source.getMessage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLocalizedMessage() {
|
||||
return source.getLocalizedMessage();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue