diff --git a/.gitea/workflows/tag_release.yaml b/.gitea/workflows/tag_release.yaml index 3b0f140..4bd12f1 100644 --- a/.gitea/workflows/tag_release.yaml +++ b/.gitea/workflows/tag_release.yaml @@ -25,7 +25,7 @@ jobs: run: | echo "Creating version" - VERSION="0.2.2" + VERSION="0.2.3" PROJECT_COMMIT_HASH=$(git rev-parse HEAD | cut -c 1-10) BRANCH_REF="${{ gitea.ref }}" BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3) diff --git a/go.mod b/go.mod index b3fb758..36f7a6e 100644 --- a/go.mod +++ b/go.mod @@ -5,4 +5,11 @@ go 1.26.2 require ( github.com/golang-jwt/jwt/v5 v5.3.1 github.com/google/uuid v1.6.0 + github.com/stretchr/testify v1.11.1 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index be3c485..346e255 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,14 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY= github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tx0/user/user.go b/tx0/user/user.go index 4e967d5..3bbf161 100644 --- a/tx0/user/user.go +++ b/tx0/user/user.go @@ -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"` } diff --git a/tx0/user/user_profile.go b/tx0/user/user_profile.go new file mode 100644 index 0000000..37b7f4a --- /dev/null +++ b/tx0/user/user_profile.go @@ -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 + } +} diff --git a/tx0/user/user_profile_test.go b/tx0/user/user_profile_test.go new file mode 100644 index 0000000..31e7bbd --- /dev/null +++ b/tx0/user/user_profile_test.go @@ -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") +}