aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/instance.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/instance.h')
-rw-r--r--src/net/instance.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/net/instance.h b/src/net/instance.h
new file mode 100644
index 0000000..2b7eec7
--- /dev/null
+++ b/src/net/instance.h
@@ -0,0 +1,24 @@
+#pragma once
+#include "src/activitypub/appost.h"
+#include "src/settings_interface.h"
+
+class Instance {
+public:
+ struct OAuth2Step2 {
+ bool ok;
+ QString token;
+ };
+
+ virtual ~Instance() {};
+ virtual APPost* get_post_from_url(const QString &url) = 0;
+ // Returns the URI the user has to visit in their browser
+ virtual QString oauth2_step1();
+ // auth_code is the code given by the user through the URI
+ // Returns true if authenfication was successful.
+ virtual OAuth2Step2 oauth2_step2(const QString &auth_code);
+ bool supports_oauth2 = false;
+ // Creates an instance by reading the type from settings
+ static Instance* create_instance();
+ // Creates a specific type of instance, for use with SettingsDialog
+ static Instance* create_instance(AppSettingsTypes::InstanceType type);
+};