/
recipeInterface.go
119 lines (93 loc) · 4.01 KB
/
recipeInterface.go
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/* Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.
*
* This software is licensed under the Apache License, Version 2.0 (the
* "License") as published by the Apache Software Foundation.
*
* You may not use this file except in compliance with the License. You may
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package plessmodels
import (
"github.com/supertokens/supertokens-golang/supertokens"
)
type RecipeInterface struct {
CreateCode *func(email *string, phoneNumber *string, userInputCode *string, tenantId string, userContext supertokens.UserContext) (CreateCodeResponse, error)
CreateNewCodeForDevice *func(deviceID string, userInputCode *string, tenantId string, userContext supertokens.UserContext) (ResendCodeResponse, error)
ConsumeCode *func(userInput *UserInputCodeWithDeviceID, linkCode *string, preAuthSessionID string, tenantId string, userContext supertokens.UserContext) (ConsumeCodeResponse, error)
GetUserByID *func(userID string, userContext supertokens.UserContext) (*User, error)
GetUserByEmail *func(email string, tenantId string, userContext supertokens.UserContext) (*User, error)
GetUserByPhoneNumber *func(phoneNumber string, tenantId string, userContext supertokens.UserContext) (*User, error)
UpdateUser *func(userID string, email *string, phoneNumber *string, userContext supertokens.UserContext) (UpdateUserResponse, error)
DeleteEmailForUser *func(userID string, userContext supertokens.UserContext) (DeleteUserResponse, error)
DeletePhoneNumberForUser *func(userID string, userContext supertokens.UserContext) (DeleteUserResponse, error)
RevokeAllCodes *func(email *string, phoneNumber *string, tenantId string, userContext supertokens.UserContext) error
RevokeCode *func(codeID string, tenantId string, userContext supertokens.UserContext) error
ListCodesByEmail *func(email string, tenantId string, userContext supertokens.UserContext) ([]DeviceType, error)
ListCodesByPhoneNumber *func(phoneNumber string, tenantId string, userContext supertokens.UserContext) ([]DeviceType, error)
ListCodesByDeviceID *func(deviceID string, tenantId string, userContext supertokens.UserContext) (*DeviceType, error)
ListCodesByPreAuthSessionID *func(preAuthSessionID string, tenantId string, userContext supertokens.UserContext) (*DeviceType, error)
}
type DeviceType struct {
PreAuthSessionID string
FailedCodeInputAttemptCount int
Email *string
PhoneNumber *string
Codes []Code
}
type Code struct {
CodeID string
TimeCreated uint64
CodeLifetime uint64
}
type ConsumeCodeResponse struct {
OK *struct {
CreatedNewUser bool
User User
}
IncorrectUserInputCodeError *struct {
FailedCodeInputAttemptCount int
MaximumCodeInputAttempts int
}
ExpiredUserInputCodeError *struct {
FailedCodeInputAttemptCount int
MaximumCodeInputAttempts int
}
RestartFlowError *struct{}
}
type UserInputCodeWithDeviceID struct {
Code string
DeviceID string
}
type ResendCodeResponse struct {
OK *NewCode
RestartFlowError *struct{}
UserInputCodeAlreadyUsedError *struct{}
}
type CreateCodeResponse struct {
OK *NewCode
}
type NewCode struct {
PreAuthSessionID string
CodeID string
DeviceID string
UserInputCode string
LinkCode string
CodeLifetime uint64
TimeCreated uint64
}
type UpdateUserResponse struct {
OK *struct{}
UnknownUserIdError *struct{}
EmailAlreadyExistsError *struct{}
PhoneNumberAlreadyExistsError *struct{}
}
type DeleteUserResponse struct {
OK *struct{}
UnknownUserIdError *struct{}
}