aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/instance.h
blob: 2b7eec767639323b404755eb2a377fd6e94a6d03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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);
};