-
Notifications
You must be signed in to change notification settings - Fork 0
/
login.ts
74 lines (68 loc) · 1.49 KB
/
login.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import type APIClient from "../client"
import type { AuthVersion } from "../../types"
export type LoginResponse = {
apiKey: string
masterKeys: string
publicKey: string
privateKey: string
}
/**
* Login
* @date 2/1/2024 - 3:10:50 PM
*
* @export
* @class Login
* @typedef {Login}
*/
export class Login {
private readonly apiClient: APIClient
/**
* Creates an instance of Login.
* @date 2/1/2024 - 3:19:15 PM
*
* @constructor
* @public
* @param {{ apiClient: APIClient }} param0
* @param {APIClient} param0.apiClient
*/
public constructor({ apiClient }: { apiClient: APIClient }) {
this.apiClient = apiClient
}
/**
* Login. Send "XXXXXX" as the twoFactorCode when 2FA is disabled.
* @date 2/1/2024 - 3:10:59 PM
*
* @public
* @async
* @param {{ email: string, password: string, twoFactorCode: string, authVersion: AuthVersion }} param0
* @param {string} param0.email
* @param {string} param0.password
* @param {string} param0.twoFactorCode
* @param {AuthVersion} param0.authVersion
* @returns {Promise<LoginResponse>}
*/
public async fetch({
email,
password,
twoFactorCode = "XXXXXX",
authVersion
}: {
email: string
password: string
twoFactorCode?: string
authVersion: AuthVersion
}): Promise<LoginResponse> {
const response = await this.apiClient.request<LoginResponse>({
method: "POST",
endpoint: "/v3/login",
data: {
email,
password,
twoFactorCode,
authVersion
}
})
return response
}
}
export default Login