Add handler for invalid tags
This commit is contained in:
parent
51f7fc0394
commit
70fdfa7709
@ -16,6 +16,8 @@ typedef struct _YacosCartItemPriv {
|
|||||||
|
|
||||||
yacos_tag_id tag_id;
|
yacos_tag_id tag_id;
|
||||||
|
|
||||||
|
yacos_cart_item_status status;
|
||||||
|
|
||||||
struct api {
|
struct api {
|
||||||
gchar *url_base;
|
gchar *url_base;
|
||||||
gchar *token;
|
gchar *token;
|
||||||
@ -101,6 +103,7 @@ void yacos_cart_item_set_id(YacosCartItem *self, yacos_tag_id tag_id)
|
|||||||
gchar *id_str;
|
gchar *id_str;
|
||||||
gchar *id_str2;
|
gchar *id_str2;
|
||||||
|
|
||||||
|
self->priv.status = YACOS_CART_ITEM_STATUS_PENDING;
|
||||||
self->priv.tag_id = tag_id;
|
self->priv.tag_id = tag_id;
|
||||||
|
|
||||||
id_str = yacos_tag_id_to_str(tag_id);
|
id_str = yacos_tag_id_to_str(tag_id);
|
||||||
@ -117,10 +120,15 @@ static void yacos_cart_item_fetch_meta_cb (SoupSession *session, SoupMessage *ms
|
|||||||
const char *temp;
|
const char *temp;
|
||||||
JsonParser *parser;
|
JsonParser *parser;
|
||||||
JsonReader *reader;
|
JsonReader *reader;
|
||||||
|
const static GdkRGBA color_error = {.red = 1.0, .green = 0.0, .blue = 0.0, .alpha = 1.0};
|
||||||
|
|
||||||
if (msg->status_code != 200) {
|
if (msg->status_code != 200) {
|
||||||
// TODO: Make this somewhat error tolerant
|
g_warning("Received error code %d from server.", msg->status_code);
|
||||||
g_error("Received error code %d from server.", msg->status_code);
|
gtk_label_set_text(GTK_LABEL(self->priv.label_title), "Unknown article");
|
||||||
|
gtk_widget_override_color(self->priv.label_title, GTK_STATE_FLAG_NORMAL, &color_error);
|
||||||
|
gtk_label_set_text(GTK_LABEL(self->priv.label_description), "This article will be ignored on checkout.");
|
||||||
|
gtk_label_set_text(GTK_LABEL(self->priv.label_comment), "If you think this is an error, please contact a member of staff.");
|
||||||
|
self->priv.status = YACOS_CART_ITEM_STATUS_INVALID;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +157,8 @@ static void yacos_cart_item_fetch_meta_cb (SoupSession *session, SoupMessage *ms
|
|||||||
|
|
||||||
g_object_unref (reader);
|
g_object_unref (reader);
|
||||||
g_object_unref (parser);
|
g_object_unref (parser);
|
||||||
|
|
||||||
|
self->priv.status = YACOS_CART_ITEM_STATUS_VALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
void yacos_cart_item_fetch_meta(YacosCartItem *self)
|
void yacos_cart_item_fetch_meta(YacosCartItem *self)
|
||||||
|
@ -10,7 +10,11 @@ G_DECLARE_FINAL_TYPE(YacosCartItem, yacos_cart_item, YACOS, CART_ITEM, GtkListBo
|
|||||||
|
|
||||||
#define TYPE_YACOS_CART_ITEM (yacos_cart_item_get_type())
|
#define TYPE_YACOS_CART_ITEM (yacos_cart_item_get_type())
|
||||||
|
|
||||||
|
typedef enum _yacos_cart_item_status {
|
||||||
|
YACOS_CART_ITEM_STATUS_PENDING = 0,
|
||||||
|
YACOS_CART_ITEM_STATUS_VALID,
|
||||||
|
YACOS_CART_ITEM_STATUS_INVALID
|
||||||
|
} yacos_cart_item_status;
|
||||||
|
|
||||||
GtkWidget *yacos_cart_item_new(void);
|
GtkWidget *yacos_cart_item_new(void);
|
||||||
void yacos_cart_item_set_id(YacosCartItem *self, yacos_tag_id tag_id);
|
void yacos_cart_item_set_id(YacosCartItem *self, yacos_tag_id tag_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user