//============================================================================
// Name        : LibraryClient.cpp
// Author      : Petr Jindra
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <string>
#include "item/item.h"
#include "item/thisUser.h"
#include "comunicator.h"
#include "container/userContainer.h"
#include <json/json.h>

using namespace std;

void printHelp() {
	cout << "Základní příkazy : " << endl << endl;

	cout << "help - vypíše tuto nápovědu" << endl;
	cout << "user - zobrazí uživatele podle identifikačního čísla" << endl;
	cout << "userlist - vypíše seznam uživatelů" << endl;
	cout << "useradd - vytvoří nového uživatele" << endl;

	cout << endl << "exit - ukončí program" << endl << endl;
}

int main() {
	//vyzvani uzivatele k zalogovani
	string url, username, password;
	int isOk;
/*
	cout << "Zadejte URL k připojení: http://";
	cin >> url;
	cout << endl << "Zadejte přihlašovací jméno: ";
	cin >> username;
	cout << endl << "Zadejte heslo: ";
	cin >> password;
*/
	url = "multimedia.localhost";
	username = "root";
	password = "11111";

	Json::Value response = Comunicator::getInstance()->setUrl("http://" + url).login(username, password, isOk);

	if (!isOk) {
		cout << "Nepodařilo se přihlásit k serveru" << endl;
		return 1;
	}

	//zapsani obecnych dat o uzivateli
	ThisUser thisUser;

	thisUser.get(response["user"]["id"].asString());

	//vypsani infomraci o uzivateli
	cout << "Jste přihlášen jako:" << endl;
	thisUser.getInfo();

	cout << endl << "Zadejte příkaz : ";
	string command;
	cin >> command;

	//vytvornei instanci kontejneru
	UserContainer users;

	while (command != "exit") {
		if (command == "help") {
			printHelp();
		} else if (command == "userlist") {
			users.getList();
		} else if (command == "useradd") {
			users.createUser();
		} else if (command == "user") {
			cout << "Zadejte identifikační číslo : ";
			string userIndex;
			cin >> userIndex;

			users.getUser(userIndex);
		}

		cout << endl << "Zadejte příkaz : ";
		cin >> command;
	}


	return 0;
}
