summaryrefslogtreecommitdiffstats
path: root/web.vala
diff options
context:
space:
mode:
Diffstat (limited to 'web.vala')
-rw-r--r--web.vala39
1 files changed, 27 insertions, 12 deletions
diff --git a/web.vala b/web.vala
index 45dab4a..5f3e1e1 100644
--- a/web.vala
+++ b/web.vala
@@ -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 */
}