summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.vala16
-rw-r--r--web.vala12
2 files changed, 22 insertions, 6 deletions
diff --git a/main.vala b/main.vala
index 3ea9caf..80fa44f 100644
--- a/main.vala
+++ b/main.vala
@@ -1,10 +1,14 @@
+public Serial s;
+public Web w;
+
public static int main(string[] args) {
if(args.length < 2) {
stderr.printf("%s <device>\n", args[0]);
return 1;
}
- var s = new Serial(args[1], 9600, 8, 1);
+ s = new Serial(args[1], 9600, 8, 1);
+ w = new Web();
char[] detected = {};
@@ -29,8 +33,14 @@ public static void interpret(string data) {
if(data.has_prefix("USER ")) {
string str_id = data.substring(5);
uint64 id = uint64.parse(str_id);
- stdout.printf("login: %llu\n", id);
+
+ if(w.is_logged_in())
+ w.logout();
+ else
+ w.login(id);
+
} else {
- stdout.printf(" product: %s\n", data);
+ uint64 id = uint64.parse(data);
+ w.buy(id);
}
}
diff --git a/web.vala b/web.vala
index 10b6e64..3383394 100644
--- a/web.vala
+++ b/web.vala
@@ -1,16 +1,18 @@
public class Web {
private Soup.SessionAsync session;
private static string server = "https://shop.kreativitaet-trifft-technik.de";
- int user = -1;
+ uint64 user = -1;
public Web() {
session = new Soup.SessionAsync ();
}
- public void login(int id) {
+ public void login(uint64 id) {
var message = new Soup.Message ("GET", server+"/login");
session.send_message (message);
+ debug("login: %llu\n", id);
+
/* on success */
this.user = id;
}
@@ -20,14 +22,18 @@ public class Web {
var message = new Soup.Message ("GET", server+"/logout");
session.send_message (message);
+ debug("logout: %llu\n", this.user);
+
this.user = -1;
}
}
- public void add(string article) {
+ public void buy(uint64 article) {
if(this.user >= 0) {
var message = new Soup.Message ("GET", server+"/buy");
session.send_message (message);
+
+ debug(" product: %llu\n", article);
} else {
/* not logged into the system */
}