summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2021-06-23 07:26:46 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2021-06-23 07:26:46 +0800
commita5ce38a2273d6f11414376e8ca3e1d7e41accd9e (patch)
tree1ab7f06920c715c287f4c4ad74ef1737c78247b3
parenta433adb8eacc0883a4757970362417ab15193e83 (diff)
New transaction function
-rw-r--r--admin.c102
-rw-r--r--icclient/admin.h17
2 files changed, 73 insertions, 46 deletions
diff --git a/admin.c b/admin.c
index 1bda169..f284595 100644
--- a/admin.c
+++ b/admin.c
@@ -1,6 +1,9 @@
#include <stdlib.h>
#include <stdbool.h>
#include "login.h"
+#include "icclient.h"
+#include "icclient/member.h"
+#include "icclient/ord.h"
#include "icclient/admin.h"
void icclient_admin_login(const char *username, const char *password, void (*handler)(icclient_response *),
@@ -13,52 +16,73 @@ void icclient_admin_new_admin(const char *username, const char *password, const
enum icclient_admin_group group, void (*handler)(icclient_response *))
{
request(handler, NULL, &(struct body){ 13, {
- { "mv_todo", "set" },
- { "mv_data_table", "access" },
- { "mv_data_key", "username" },
- { "mv_update_empty", "1" },
- { "mv_data_fields", "username password name super groups" },
- { "mv_click", "process_filter" },
- { "user_id", "NEW" },
- { "name", name },
- { "mv_data_function", "insert" },
- { "username", username },
- { "password", password },
- { "super", super ? "1" : "0" },
- { "groups", group == ICCLIENT_ADMIN_GROUP_CONTENT ? ":CONTENT"
- : group == ICCLIENT_ADMIN_GROUP_MERCH ? ":MERCH" : ":ORDERS" }
- }}, "%s", "ui");
+ { "mv_todo", "set" },
+ { "mv_data_table", "access" },
+ { "mv_data_key", "username" },
+ { "mv_update_empty", "1" },
+ { "mv_data_fields", "username password name super groups" },
+ { "mv_click", "process_filter" },
+ { "user_id", "NEW" },
+ { "name", name },
+ { "mv_data_function", "insert" },
+ { "username", username },
+ { "password", password },
+ { "super", super ? "1" : "0" },
+ { "groups", group == ICCLIENT_ADMIN_GROUP_CONTENT ? ":CONTENT"
+ : group == ICCLIENT_ADMIN_GROUP_MERCH ? ":MERCH" : ":ORDERS" }
+ }}, "%s", "ui");
}
-void icclient_admin_new_item(const char *description, const char *comment, const char *price, const char *image_path,
- void (*handler)(icclient_response *))
+void icclient_admin_new_item(const char *description, const char *comment, const char *price,
+ const char *image_path, void (*handler)(icclient_response *))
{
request(handler, NULL, &(struct body){ 15, {
- { "mv_click", "process_filter" },
- { "mv_data_fields", "sku description prod_group category comment inactive price wholesale image thumb image_large weight nontaxable gift_cert" },
- { "mv_ui", "1" },
- { "ui_new_item", "1" },
- { "mv_todo", "set" },
- { "mv_update_empty", "1" },
- { "mv_action", "set" },
- { "mv_data_table", "products" },
- { "mv_data_function", "insert" },
- { "mv_data_key", "sku" },
- { "mv_return_table", "products" },
- { "sku", image_path },
- { "description", description },
- { "comment", comment },
- { "price", price }
- /*
- { "image",
- CURLFORM_FILE, image_path,
- CURLFORM_CONTENTTYPE, "image/jpeg" },
- { "mv_data_file_field", "image" },
- { "mv_data_file_path", "images/items" }
- */
+ { "mv_click", "process_filter" },
+ { "mv_data_fields", "sku description prod_group category comment inactive price wholesale"
+ "image thumb image_large weight nontaxable gift_cert" },
+ { "mv_ui", "1" },
+ { "ui_new_item", "1" },
+ { "mv_todo", "set" },
+ { "mv_update_empty", "1" },
+ { "mv_action", "set" },
+ { "mv_data_table", "products" },
+ { "mv_data_function", "insert" },
+ { "mv_data_key", "sku" },
+ { "mv_return_table", "products" },
+ { "sku", image_path },
+ { "description", description },
+ { "comment", comment },
+ { "price", price }
+ /*
+ { "image",
+ CURLFORM_FILE, image_path,
+ CURLFORM_CONTENTTYPE, "image/jpeg" },
+ { "mv_data_file_field", "image" },
+ { "mv_data_file_path", "images/items" }
+ */
}}, "%s", "admin/item_edit");
}
+void icclient_admin_new_transaction(const struct icclient_ord_order *order,
+ const struct icclient_member *member, bool new_customer_id,
+ void (*handler)(icclient_response *))
+{
+ request(handler, NULL, &(struct body){ 12, {
+ { "mv_values_space", "order_entry" },
+ { "order_desk_entry", "1" },
+ { "customer_id", member->username },
+ { "new_customer_id", new_customer_id ? "1" : "0" },
+ { "fname", member->fname },
+ { "lname", member->lname },
+ { "address1", member->address1 },
+ { "city", member->city },
+ { "zip", member->zip },
+ { "email", member->email },
+ { "country", member->country },
+ { "phone_day", member->phone_day }
+ }}, "%s", "process");
+}
+
void icclient_admin_logout(struct icclient_admin *admin, void (*handler)(icclient_response *))
{
request(handler, NULL, NULL, "%s", "admin/login");
diff --git a/icclient/admin.h b/icclient/admin.h
index 64d5b0a..08e4751 100644
--- a/icclient/admin.h
+++ b/icclient/admin.h
@@ -21,13 +21,16 @@ struct icclient_admin {
extern "C" {
#endif
- void icclient_admin_login(const char *username, const char *password, void (*handler)(icclient_response *),
- void (*callback)(struct icclient_admin *));
- void icclient_admin_new_admin(const char *username, const char *password, const char *name, bool super,
- enum icclient_admin_group group, void (*handler)(icclient_response *));
- void icclient_admin_new_item(const char *description, const char *comment, const char *price, const char *image_path,
- void (*handler)(icclient_response *));
- void icclient_admin_logout(struct icclient_admin *admin, void (*handler)(icclient_response *));
+void icclient_admin_login(const char *username, const char *password, void (*handler)(icclient_response *),
+ void (*callback)(struct icclient_admin *));
+void icclient_admin_new_admin(const char *username, const char *password, const char *name, bool super,
+ enum icclient_admin_group group, void (*handler)(icclient_response *));
+void icclient_admin_new_item(const char *description, const char *comment, const char *price,
+ const char *image_path, void (*handler)(icclient_response *));
+void icclient_admin_new_transaction(const struct icclient_ord_order *order,
+ const struct icclient_member *member, bool new_customer_id,
+ void (*handler)(icclient_response *));
+void icclient_admin_logout(struct icclient_admin *admin, void (*handler)(icclient_response *));
#ifdef __cplusplus
}