1 module Auth
2 VERSION: String
3 end
4
5 module SmbCloud
6 module Auth
7 class Error < StandardError
8 attr_reader error_code: Integer?
9 attr_reader payload: untyped
10 end
11
12 module Environment
13 DEV: String
14 PRODUCTION: String
15 end
16
17 class Client
18 attr_reader environment: String
19 attr_reader app_id: String
20 attr_reader app_secret: String
21
22 def initialize: (environment: String, app_id: String, app_secret: String) -> void
23 def signup: (email: String, password: String) -> Hash[Symbol, untyped]
24 def login: (email: String, password: String) -> Hash[Symbol, untyped]
25 def me: (access_token: String) -> Hash[Symbol, untyped]
26 def logout: (access_token: String) -> bool
27 def remove: (access_token: String) -> bool
28 end
29
30 def self.client: (environment: String, app_id: String, app_secret: String) -> Client
31 def self.signup_with_client: (environment: String, app_id: String, app_secret: String, email: String, password: String) -> Hash[Symbol, untyped]
32 def self.login_with_client: (environment: String, app_id: String, app_secret: String, email: String, password: String) -> Hash[Symbol, untyped]
33 def self.me_with_client: (environment: String, app_id: String, app_secret: String, access_token: String) -> Hash[Symbol, untyped]
34 def self.logout_with_client: (environment: String, app_id: String, app_secret: String, access_token: String) -> bool
35 def self.remove_with_client: (environment: String, app_id: String, app_secret: String, access_token: String) -> bool
36 end
37 end