summaryrefslogtreecommitdiff
path: root/src/login_window.c
diff options
context:
space:
mode:
authornirav <nirav@teisuu.com>2019-03-28 09:10:52 +0530
committernirav <nirav@teisuu.com>2019-03-28 09:10:52 +0530
commit477e1ba2977435ae7bb75c7dbd95cf28247f89bd (patch)
treece1f9719a7d11bbd47e9adea26dd610bc087962e /src/login_window.c
parentcc727e972f7fdc871ee1f42cf014151b67422bf0 (diff)
downloadap_client-master.tar.gz
ap_client-master.zip
Move APIs into libgs dirHEADmaster
Diffstat (limited to 'src/login_window.c')
-rw-r--r--src/login_window.c48
1 files changed, 23 insertions, 25 deletions
diff --git a/src/login_window.c b/src/login_window.c
index 241ca9b..54f7174 100644
--- a/src/login_window.c
+++ b/src/login_window.c
@@ -1,16 +1,13 @@
#define _POSIX_C_SOURCE 200809L
-#include <err.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
-#include <stdbool.h>
#include <gtk-3.0/gtk/gtk.h>
-#include "auth.h"
-#include "register.h"
-#include "http.h"
-#include "timeline.h"
+#include <gs.h>
#include "main_window.h"
#include "log.h"
+static GSClient *gs_client = NULL;
GtkApplication *application;
GObject *login_dialog;
GObject *instance_domain_entry, *email_entry, *password_entry;
@@ -19,39 +16,40 @@ GObject *spinner;
static gboolean login_completed(gpointer data)
{
- int *val_ptr = data;
gtk_spinner_stop(GTK_SPINNER(spinner));
- if (*val_ptr) {
- free(val_ptr);
- log_msg(LOG_WARNING, "login_callback", "login failed");
- return G_SOURCE_REMOVE;
- } else {
- free(val_ptr);
- gtk_widget_destroy(GTK_WIDGET(login_dialog));
- return G_SOURCE_REMOVE;
- }
+ gtk_widget_destroy(GTK_WIDGET(login_dialog));
+ return G_SOURCE_REMOVE;
+}
+
+static gboolean login_failed(gpointer data)
+{
+ gtk_spinner_stop(GTK_SPINNER(spinner));
+ return G_SOURCE_REMOVE;
}
static gpointer user_register(gpointer data)
{
- int *val_ptr;
const char *instance_name, *email, *password;
+ struct gs_app *app;
instance_name = gtk_entry_get_text(GTK_ENTRY(instance_domain_entry));
email = gtk_entry_get_text(GTK_ENTRY(email_entry));
password = gtk_entry_get_text(GTK_ENTRY(password_entry));
- val_ptr = malloc(sizeof(int));
- *val_ptr = register_app(instance_name);
+ app = gs_app_register(instance_name);
if (*val_ptr) {
log_msg(LOG_WARNING, "user_register", "registration failed");
}
- *val_ptr = login(email, password);
- if (*val_ptr) {
+
+ gs_client = gs_client_new(instance_name, app->client_id, app->client_secret);
+
+ if (gs_auth_authenticate(gs_client, email, password)) {
log_msg(LOG_WARNING, "user_register", "login failed");
+ gdk_threads_add_idle(login_failed, NULL);
+ return;
}
- gdk_threads_add_idle(login_completed, val_ptr);
+ gdk_threads_add_idle(login_completed, NULL);
return NULL;
}
@@ -73,7 +71,6 @@ static bool is_form_valid()
static void login_button_click(GtkButton *button, gpointer user_data)
{
- g_print("clicked\n");
if (is_form_valid())
submit_login_form();
}
@@ -92,14 +89,15 @@ static void login_form_changed(GtkWidget *widget, gpointer data)
gtk_widget_set_sensitive(GTK_WIDGET(login_button), false);
}
-int create_login_dialog()
+int create_login_dialog(gpointer data)
{
GtkBuilder *login_builder;
login_builder = gtk_builder_new_from_file("data/login_window.ui");
login_dialog = gtk_builder_get_object(login_builder, "login_dialog");
- instance_domain_entry = gtk_builder_get_object(login_builder, "instance_name");
+ instance_domain_entry = gtk_builder_get_object(login_builder,
+ "instance_name");
g_signal_connect(G_OBJECT(instance_domain_entry), "changed",
G_CALLBACK(login_form_changed), NULL);
g_signal_connect(GTK_ENTRY(instance_domain_entry), "activate",