Total Lines | 38 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | package requests |
||
2 | |||
3 | import ( |
||
4 | "strings" |
||
5 | |||
6 | "github.com/nyaruka/phonenumbers" |
||
7 | |||
8 | "github.com/NdoleStudio/httpsms/pkg/entities" |
||
9 | "github.com/NdoleStudio/httpsms/pkg/services" |
||
10 | ) |
||
11 | |||
12 | // PhoneFCMToken is the payload for updating the FCM token of a phone |
||
13 | type PhoneFCMToken struct { |
||
14 | request |
||
15 | PhoneNumber string `json:"phone_number" example:"[+18005550199]"` |
||
16 | FcmToken string `json:"fcm_token" example:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzd....."` |
||
17 | // SIM is the SIM slot of the phone in case the phone has more than 1 SIM slot |
||
18 | SIM string `json:"sim" example:"SIM1"` |
||
19 | } |
||
20 | |||
21 | // Sanitize sets defaults to MessageOutstanding |
||
22 | func (input *PhoneFCMToken) Sanitize() PhoneFCMToken { |
||
23 | input.FcmToken = strings.TrimSpace(input.FcmToken) |
||
24 | input.PhoneNumber = input.sanitizeAddress(input.PhoneNumber) |
||
25 | input.SIM = input.sanitizeSIM(input.SIM) |
||
26 | return *input |
||
27 | } |
||
28 | |||
29 | // ToPhoneFCMTokenParams converts PhoneFCMToken to services.PhoneFCMTokenParams |
||
30 | func (input *PhoneFCMToken) ToPhoneFCMTokenParams(user entities.AuthContext, source string) *services.PhoneFCMTokenParams { |
||
31 | phone, _ := phonenumbers.Parse(input.PhoneNumber, phonenumbers.UNKNOWN_REGION) |
||
32 | return &services.PhoneFCMTokenParams{ |
||
33 | Source: source, |
||
34 | PhoneNumber: phone, |
||
35 | PhoneAPIKeyID: user.PhoneAPIKeyID, |
||
36 | UserID: user.ID, |
||
37 | FcmToken: &input.FcmToken, |
||
38 | SIM: entities.SIM(input.SIM), |
||
39 | } |
||
41 |