diff options
Diffstat (limited to 'web.vala')
-rw-r--r-- | web.vala | 39 |
1 files changed, 27 insertions, 12 deletions
@@ -4,36 +4,51 @@ public class Web { uint64 user = 0; public Web() { - session = new Soup.SessionAsync (); + session = new Soup.SessionAsync(); + var cookies = new Soup.CookieJar(); + session.add_feature(cookies); } public void login(uint64 id) { - var message = new Soup.Message ("GET", server+"/login"); - session.send_message (message); + //stdout.printf("login: %llu\n", id); - stdout.printf("login: %llu\n", id); + var message = new Soup.Message("POST", server+"/login"); + var post_data = "userid=%llu".printf(id); + message.set_request("application/x-www-form-urlencoded", Soup.MemoryUse.COPY, post_data.data); + session.send_message(message); + + stdout.write(message.response_body.data); + stdout.printf("\n"); /* on success */ this.user = id; } public void logout() { - if(this.user != 0) { - var message = new Soup.Message ("GET", server+"/logout"); - session.send_message (message); + if(this.is_logged_in()) { + //stdout.printf("logout\n", id); + + var message = new Soup.Message("GET", server+"/logout"); + session.send_message(message); - stdout.printf("logout: %llu\n", this.user); + stdout.write(message.response_body.data); + stdout.printf("\n"); this.user = 0; } } public void buy(uint64 article) { - if(this.user > 0) { - var message = new Soup.Message ("GET", server+"/buy"); - session.send_message (message); + if(this.is_logged_in()) { + //stdout.printf(" buy: %llu\n", article); + + var message = new Soup.Message("POST", server+"/buy"); + var post_data = "article=%llu".printf(article); + message.set_request("application/x-www-form-urlencoded", Soup.MemoryUse.COPY, post_data.data); + session.send_message(message); - stdout.printf(" product: %llu\n", article); + stdout.write(message.response_body.data); + stdout.printf("\n"); } else { /* not logged into the system */ } |