Compare commits
23
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
894e1387de
|
||
|
|
6f90428975
|
||
|
|
c3ec0731b2
|
||
|
|
413d9baffd
|
||
|
|
87a437311b
|
||
|
|
2820cdfed6
|
||
|
|
b230b7e0d9
|
||
|
|
897ac80b96
|
||
|
|
509b9d58a5
|
||
|
|
5b36e5c42e | ||
|
|
e459183747
|
||
|
|
19d074d3d7
|
||
|
|
209e1428d8
|
||
|
|
97591d99b5
|
||
|
|
587f9a05af
|
||
|
|
b130f6e069
|
||
|
|
e74dd82211
|
||
|
|
8cfccc2722
|
||
|
|
801a314421
|
||
|
|
9565259dc1
|
||
|
|
f05a513926
|
||
|
|
39ecf052a0
|
||
|
|
2b5cb3a093
|
@@ -25,7 +25,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "Creating version"
|
echo "Creating version"
|
||||||
|
|
||||||
VERSION="0.2.1"
|
VERSION="0.2.2"
|
||||||
PROJECT_COMMIT_HASH=$(git rev-parse HEAD | cut -c 1-10)
|
PROJECT_COMMIT_HASH=$(git rev-parse HEAD | cut -c 1-10)
|
||||||
BRANCH_REF="${{ gitea.ref }}"
|
BRANCH_REF="${{ gitea.ref }}"
|
||||||
BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3)
|
BRANCH_NAME=$(echo "$BRANCH_REF" | cut -d '/' -f 3)
|
||||||
|
|||||||
@@ -5,4 +5,11 @@ go 1.26.2
|
|||||||
require (
|
require (
|
||||||
github.com/golang-jwt/jwt/v5 v5.3.1
|
github.com/golang-jwt/jwt/v5 v5.3.1
|
||||||
github.com/google/uuid v1.6.0
|
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
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
|
||||||
github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
|
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 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
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=
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package user
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UserLoginHistory struct {
|
||||||
|
Id uuid.UUID `json:"id"`
|
||||||
|
LoginTime time.Time `json:"login_time"`
|
||||||
|
UserId uuid.UUID `json:"user_id"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServiceUserLoginHistory struct {
|
||||||
|
Id uuid.UUID `json:"id"`
|
||||||
|
LoginTime time.Time `json:"login_time"`
|
||||||
|
ServiceUserId uuid.UUID `json:"service_user_id"`
|
||||||
|
}
|
||||||
@@ -11,7 +11,9 @@ type User struct {
|
|||||||
PhoneNumber string `json:"phone_number"`
|
PhoneNumber string `json:"phone_number"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
|
// Firstname is a pointer
|
||||||
Firstname *string `json:"first_name,omitempty"`
|
Firstname *string `json:"first_name,omitempty"`
|
||||||
|
// Lastname is a pointer
|
||||||
Lastname *string `json:"last_name,omitempty"`
|
Lastname *string `json:"last_name,omitempty"`
|
||||||
Created time.Time `json:"created"`
|
Created time.Time `json:"created"`
|
||||||
LastLogin *time.Time `json:"last_login,omitempty"`
|
LastLogin *time.Time `json:"last_login,omitempty"`
|
||||||
|
|||||||
+27
-22
@@ -1,37 +1,42 @@
|
|||||||
package user
|
package user
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"fmt"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO: Replace Usr with all the fields from User, except Password and other sensitive fields
|
||||||
type UserProfile struct {
|
type UserProfile struct {
|
||||||
Usr *User `json:"user"`
|
UserId uuid.UUID `json:"user_id"`
|
||||||
|
PhoneNumber string `json:"phone_number"`
|
||||||
|
Username string `json:"username"`
|
||||||
|
Firstname string `json:"firstname"`
|
||||||
|
Lastname string `json:"lastname"`
|
||||||
|
Created time.Time `json:"created"`
|
||||||
|
LastLogin *time.Time `json:"last_login,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitUserProfile(usr *User) (usrProfile *UserProfile, done bool) {
|
func InitUserProfile(usr *User) (usrProfile *UserProfile, err error) {
|
||||||
if usr == nil {
|
if usr == nil {
|
||||||
return nil, false
|
return nil, fmt.Errorf("User is empty")
|
||||||
} else {
|
} else {
|
||||||
if len(usr.Password) > 0 {
|
usrProfile = new(UserProfile)
|
||||||
var newUsr User
|
usrProfile.UserId = usr.Id
|
||||||
newUsr = *usr
|
usrProfile.PhoneNumber = usr.PhoneNumber
|
||||||
newUsr.Password = ""
|
usrProfile.Username = usr.Username
|
||||||
usrProfile.Usr = &newUsr
|
if usr.Firstname != nil {
|
||||||
|
usrProfile.Firstname = *usr.Firstname
|
||||||
return usrProfile, true
|
|
||||||
} else {
|
|
||||||
usrProfile.Usr = usr
|
|
||||||
return usrProfile, true
|
|
||||||
}
|
}
|
||||||
|
if usr.Lastname != nil {
|
||||||
|
usrProfile.Lastname = *usr.Lastname
|
||||||
}
|
}
|
||||||
|
usrProfile.Created = usr.Created
|
||||||
|
if usr.LastLogin != nil {
|
||||||
|
usrProfile.LastLogin = usr.LastLogin
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInitUserProfile(t *testing.T) {
|
return usrProfile, nil
|
||||||
usr := User{}
|
}
|
||||||
usr.username = "Bob"
|
|
||||||
usr.Phone = "+12224572351"
|
|
||||||
usr.Password = "TheNight!"
|
|
||||||
profile, done := InitUserProfile(&usr)
|
|
||||||
t.Assert(done, true, "Error")
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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