Skip to content

Commit

Permalink
Multiple servers, reworked class managing, establishment managing
Browse files Browse the repository at this point in the history
  • Loading branch information
Litarvan committed Feb 19, 2018
1 parent b008d1c commit 69417f9
Show file tree
Hide file tree
Showing 27 changed files with 355 additions and 275 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Look for build/distributions/sakado-server-[version].zip then

## Usage

Requires [sakado-data-server](https://github.com/sakado-app/sakado-data-server) to be launched on the port defined in config/pronote.json (config files are created at first run).
Requires [sakado-data-server](https://github.com/sakado-app/sakado-data-server) to be launched on the port defined in config/userManager.json (config files are created at first run).
Won't run without it.

Push notifications are disabled if Firebase Cloud Messaging is not configured in config/fcm.json
76 changes: 0 additions & 76 deletions src/main/java/fr/litarvan/sakado/server/ClassManager.java

This file was deleted.

16 changes: 8 additions & 8 deletions src/main/java/fr/litarvan/sakado/server/SakadoServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@
import fr.litarvan.commons.config.ConfigProvider;
import fr.litarvan.commons.crash.ExceptionHandler;
import fr.litarvan.commons.io.IOSource;
import fr.litarvan.sakado.server.data.SakadoData;
import fr.litarvan.sakado.server.http.Controller;
import fr.litarvan.sakado.server.http.Routes;
import fr.litarvan.sakado.server.http.error.APIError;
import fr.litarvan.sakado.server.http.error.HTTPReportField;
import fr.litarvan.sakado.server.http.error.InRequestException;
import fr.litarvan.sakado.server.pronote.Pronote;
import fr.litarvan.sakado.server.pronote.RefreshService;
import fr.litarvan.sakado.server.pronote.network.RequestException;
import fr.litarvan.sakado.server.data.RefreshService;
import fr.litarvan.sakado.server.data.network.RequestException;
import java.net.HttpURLConnection;
import java.net.URL;

Expand Down Expand Up @@ -61,7 +61,7 @@ public class SakadoServer implements App
private ConfigProvider configs;

@Inject
private Pronote pronote;
private SakadoData data;

@Inject
private Routes routes;
Expand All @@ -84,7 +84,7 @@ public void start()

configs.from("config/app.json").defaultIn(IOSource.at("app.default.json"));
configs.from("config/proxy.json").defaultIn(IOSource.at("proxy.default.json"));
configs.from("config/pronote.json").defaultIn(IOSource.at("pronote.default.json"));
configs.from("config/data.json").defaultIn(IOSource.at("data.default.json"));
configs.from("config/fcm.json").defaultIn(IOSource.at("fcm.default.json"));

if (configs.at("proxy.enabled", boolean.class))
Expand All @@ -109,14 +109,14 @@ public void start()
}
}

log.info("Starting Pronote service...");
log.info("Starting data service...");
try
{
pronote.init();
data.init();
}
catch (IOException e)
{
log.fatal("Couldn't init Pronote service, shutting down...", e);
log.fatal("Couldn't init UserManager service, shutting down...", e);
System.exit(1);
}

Expand Down
17 changes: 9 additions & 8 deletions src/main/java/fr/litarvan/sakado/server/StudentClass.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@
*/
package fr.litarvan.sakado.server;

import fr.litarvan.sakado.server.pronote.User;
import fr.litarvan.sakado.server.data.Establishment;
import fr.litarvan.sakado.server.data.User;

import java.util.ArrayList;

public class StudentClass
{
private String pronoteUrl;
private Establishment establishment;
private String name;
private ArrayList<String> members;
private transient ArrayList<User> loggedUsers;
Expand All @@ -33,14 +34,14 @@ public class StudentClass
private ArrayList<String> longHomeworks;
private ArrayList<String> representatives;

public StudentClass(String pronoteUrl, String name, String admin)
public StudentClass(Establishment establishment, String name, String admin)
{
this(pronoteUrl, name, admin, new ArrayList<>());
this(establishment, name, admin, new ArrayList<>());
}

public StudentClass(String pronoteUrl, String name, String admin, ArrayList<String> members)
public StudentClass(Establishment establishment, String name, String admin, ArrayList<String> members)
{
this.pronoteUrl = pronoteUrl;
this.establishment = establishment;
this.name = name;
this.members = members;
this.loggedUsers = new ArrayList<>();
Expand Down Expand Up @@ -78,9 +79,9 @@ public void setLongHomework(String homework, boolean isLong)
}
}

public String getPronoteUrl()
public Establishment getEstablishment()
{
return pronoteUrl;
return establishment;
}

public String getName()
Expand Down
50 changes: 50 additions & 0 deletions src/main/java/fr/litarvan/sakado/server/data/DataServer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.data.network.NetworkClient;

import java.io.IOException;

public class DataServer
{
private String name;
private String host;
private int port;

private transient NetworkClient client;

public DataServer()
{
}

public DataServer(String name, String host, int port)
{
this.name = name;
this.host = host;
this.port = port;
}

public void init() throws IOException
{
this.client = new NetworkClient(host, port);
}

public NetworkClient getClient()
{
return this.client;
}

public String getName()
{
return name;
}

public String getHost()
{
return host;
}

public int getPort()
{
return port;
}
}
95 changes: 95 additions & 0 deletions src/main/java/fr/litarvan/sakado/server/data/Establishment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.StudentClass;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class Establishment
{
private String name;
private FetchMethod method;

private transient List<StudentClass> classes;

public Establishment()
{
this.classes = new ArrayList<>();
}

public Establishment(String name, FetchMethod method)
{
this();

this.name = name;
this.method = method;
}

public StudentClass classOf(User user)
{
for (StudentClass cl : classes)
{
if (cl.getMembers().contains(user.getUsername()) && cl.getEstablishment() == user.getEstablishment())
{
return cl;
}
}

return null;
}

public StudentClass getClassByName(String name)
{
for (StudentClass cl : this.classes)
{
if (cl.getName().equalsIgnoreCase(name))
{
return cl;
}
}

return null;
}

public String getName()
{
return name;
}

public FetchMethod getMethod()
{
return method;
}

public List<StudentClass> getClasses()
{
return classes;
}

public static class FetchMethod
{
private String server;
private Map<String, String> params;

public FetchMethod()
{
}

public FetchMethod(String server, Map<String, String> params)
{
this.server = server;
this.params = params;
}

public String getServer()
{
return server;
}

public Map<String, String> getParams()
{
return params;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package fr.litarvan.sakado.server.pronote;
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.util.CalendarUtils;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package fr.litarvan.sakado.server.pronote;
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.util.CalendarUtils;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package fr.litarvan.sakado.server.pronote;
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.pronote.network.RequestException;
import fr.litarvan.sakado.server.data.network.RequestException;

public class LoginException extends RequestException
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package fr.litarvan.sakado.server.pronote;
package fr.litarvan.sakado.server.data;

import fr.litarvan.sakado.server.util.CalendarUtils;

Expand Down
Loading

0 comments on commit 69417f9

Please sign in to comment.