package controller;_x000D_
_x000D_
import java.util.ArrayList;_x000D_
_x000D_
import javax.json.Json;_x000D_
import javax.json.JsonArrayBuilder;_x000D_
import javax.json.JsonObject;_x000D_
_x000D_
import model.Docent;_x000D_
import model.PrIS;_x000D_
import model.Vak;_x000D_
import server.Conversation;_x000D_
import server.Handler;_x000D_
_x000D_
public class DocentController implements Handler {_x000D_
	private PrIS informatieSysteem;_x000D_
	_x000D_
	/**_x000D_
	 * De DocentController klasse moet alle docent-gerelateerde aanvragen_x000D_
	 * afhandelen. Methode handle() kijkt welke URI is opgevraagd en laat_x000D_
	 * dan de juiste methode het werk doen. Je kunt voor elke nieuwe URI_x000D_
	 * een nieuwe methode schrijven._x000D_
	 * _x000D_
	 * @param infoSys - het toegangspunt tot het domeinmodel_x000D_
	 */_x000D_
	public DocentController(PrIS infoSys) {_x000D_
		informatieSysteem = infoSys;_x000D_
	}_x000D_
	_x000D_
	public void handle(Conversation conversation) {_x000D_
		if (conversation.getRequestedURI().startsWith("/docent/mijnvakken")) {_x000D_
			mijnVakken(conversation);_x000D_
		}_x000D_
	}_x000D_
	_x000D_
	/**_x000D_
	 * Deze methode haalt eerst de opgestuurde JSON-data op. Daarna worden_x000D_
	 * de benodigde gegevens uit het domeinmodel gehaald. Deze gegevens worden_x000D_
	 * dan weer omgezet naar JSON en teruggestuurd naar de Polymer-GUI!_x000D_
	 * _x000D_
	 * @param conversation - alle informatie over het request_x000D_
	 */_x000D_
	private void mijnVakken(Conversation conversation) {_x000D_
		JsonObject jsonObjectIn = (JsonObject) conversation.getRequestBodyAsJSON();_x000D_
		String gebruikersnaam = jsonObjectIn.getString("username");_x000D_
		_x000D_
		Docent docent = informatieSysteem.getDocent(gebruikersnaam);	// Docent-object ophalen!_x000D_
		ArrayList<Vak> vakken = docent.getVakken();						// Vakken van de docent ophalen!_x000D_
		_x000D_
		JsonArrayBuilder jab = Json.createArrayBuilder(); 				// En uiteindelijk gaat er een JSON-array met..._x000D_
		_x000D_
		for (Vak v : vakken) {_x000D_
			jab.add(Json.createObjectBuilder()							// daarin voor elk vak een JSON-object..._x000D_
					.add("vakcode", v.getVakCode())_x000D_
					.add("vaknaam", v.getVakNaam()));_x000D_
		}_x000D_
		_x000D_
		conversation.sendJSONMessage(jab.build().toString());			// terug naar de Polymer-GUI!_x000D_
	}_x000D_
}_x000D_

/**_x000D_
	 * Deze methode haalt eerst de opgestuurde JSON-data op. Daarna worden_x000D_
	 * de benodigde gegevens uit het domeinmodel gehaald. Deze gegevens worden_x000D_
	 * dan weer omgezet naar JSON en teruggestuurd naar de Polymer-GUI!_x000D_
	 * _x000D_
	 * @param conversation - alle informatie over het request_x000D_
	 */
package controller;_x000D_
_x000D_
import java.util.ArrayList;_x000D_
_x000D_
import javax.json.Json;_x000D_
import javax.json.JsonArrayBuilder;_x000D_
import javax.json.JsonObject;_x000D_
_x000D_
import model.Docent;_x000D_
import model.PrIS;_x000D_
import model.Vak;_x000D_
import server.Conversation;_x000D_
import server.Handler;_x000D_
_x000D_
public class DocentController implements Handler {_x000D_
	private PrIS informatieSysteem;_x000D_
	_x000D_
	/**_x000D_
	 * De DocentController klasse moet alle docent-gerelateerde aanvragen_x000D_
	 * afhandelen. Methode handle() kijkt welke URI is opgevraagd en laat_x000D_
	 * dan de juiste methode het werk doen. Je kunt voor elke nieuwe URI_x000D_
	 * een nieuwe methode schrijven._x000D_
	 * _x000D_
	 * @param infoSys - het toegangspunt tot het domeinmodel_x000D_
	 */_x000D_
	public DocentController(PrIS infoSys) {_x000D_
		informatieSysteem = infoSys;_x000D_
	}_x000D_
	_x000D_
	public void handle(Conversation conversation) {_x000D_
		if (conversation.getRequestedURI().startsWith("/docent/mijnvakken")) {_x000D_
			mijnVakken(conversation);_x000D_
		}_x000D_
	}_x000D_
	_x000D_
	/**_x000D_
	 * Deze methode haalt<SUF>*/_x000D_
	private void mijnVakken(Conversation conversation) {_x000D_
		JsonObject jsonObjectIn = (JsonObject) conversation.getRequestBodyAsJSON();_x000D_
		String gebruikersnaam = jsonObjectIn.getString("username");_x000D_
		_x000D_
		Docent docent = informatieSysteem.getDocent(gebruikersnaam);	// Docent-object ophalen!_x000D_
		ArrayList<Vak> vakken = docent.getVakken();						// Vakken van de docent ophalen!_x000D_
		_x000D_
		JsonArrayBuilder jab = Json.createArrayBuilder(); 				// En uiteindelijk gaat er een JSON-array met..._x000D_
		_x000D_
		for (Vak v : vakken) {_x000D_
			jab.add(Json.createObjectBuilder()							// daarin voor elk vak een JSON-object..._x000D_
					.add("vakcode", v.getVakCode())_x000D_
					.add("vaknaam", v.getVakNaam()));_x000D_
		}_x000D_
		_x000D_
		conversation.sendJSONMessage(jab.build().toString());			// terug naar de Polymer-GUI!_x000D_
	}_x000D_
}_x000D_
