UserProfile (#1)
Reviewed-on: phoenix/textsender-models#1
This commit was merged in pull request #1.
This commit is contained in:
+10
-8
@@ -7,12 +7,14 @@ import (
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Id uuid.UUID `json:"id"`
|
||||
PhoneNumber string `json:"phone_number"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
Firstname *string `json:"first_name,omitempty"`
|
||||
Lastname *string `json:"last_name,omitempty"`
|
||||
Created time.Time `json:"created"`
|
||||
LastLogin *time.Time `json:"last_login,omitempty"`
|
||||
Id uuid.UUID `json:"id"`
|
||||
PhoneNumber string `json:"phone_number"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
// Firstname is a pointer
|
||||
Firstname *string `json:"first_name,omitempty"`
|
||||
// Lastname is a pointer
|
||||
Lastname *string `json:"last_name,omitempty"`
|
||||
Created time.Time `json:"created"`
|
||||
LastLogin *time.Time `json:"last_login,omitempty"`
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type UserProfile struct {
|
||||
UserId uuid.UUID `json:"user_id"`
|
||||
PhoneNumber string `json:"phone_number"`
|
||||
Username string `json:"username"`
|
||||
Firstname *string `json:"firstname,omitempty"`
|
||||
Lastname *string `json:"lastname,omitempty"`
|
||||
Created time.Time `json:"created"`
|
||||
LastLogin *time.Time `json:"last_login,omitempty"`
|
||||
}
|
||||
|
||||
func InitUserProfile(usr *User) (usrProfile *UserProfile, err error) {
|
||||
if usr == nil {
|
||||
return nil, fmt.Errorf("User is empty")
|
||||
} else {
|
||||
usrProfile = new(UserProfile)
|
||||
usrProfile.UserId = usr.Id
|
||||
usrProfile.PhoneNumber = usr.PhoneNumber
|
||||
usrProfile.Username = usr.Username
|
||||
if usr.Firstname != nil {
|
||||
usrProfile.Firstname = usr.Firstname
|
||||
}
|
||||
if usr.Lastname != nil {
|
||||
usrProfile.Lastname = usr.Lastname
|
||||
}
|
||||
usrProfile.Created = usr.Created
|
||||
if usr.LastLogin != nil {
|
||||
usrProfile.LastLogin = usr.LastLogin
|
||||
}
|
||||
|
||||
return usrProfile, nil
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestInitUserProfile(t *testing.T) {
|
||||
usr := User{Username: "Bob", PhoneNumber: "+12224572351", Password: "TheNight!"}
|
||||
|
||||
profile, err := InitUserProfile(&usr)
|
||||
|
||||
assert.NoError(t, err, "Error %v", err)
|
||||
assert.NotEmpty(t, profile, "UserProfile is empty")
|
||||
}
|
||||
Reference in New Issue
Block a user