diff options
-rw-r--r-- | main.vala | 16 | ||||
-rw-r--r-- | web.vala | 12 |
2 files changed, 22 insertions, 6 deletions
@@ -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); } } @@ -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 */ } |