refactor nkode-core

This commit is contained in:
2025-01-21 01:19:27 -06:00
parent 3ed12cee68
commit c5e95239b5
46 changed files with 318 additions and 434 deletions

View File

@@ -8,10 +8,11 @@ import (
httpSwagger "github.com/swaggo/http-swagger"
_ "go-nkode/docs"
"go-nkode/internal/api"
"go-nkode/internal/email"
"go-nkode/internal/models"
"go-nkode/internal/repository"
sqliteQueue "go-nkode/internal/sqlc"
api2 "go-nkode/pkg/nkode-core/api"
"go-nkode/pkg/nkode-core/email"
"go-nkode/pkg/nkode-core/entities"
"go-nkode/pkg/nkode-core/repository"
sqliteQueue "go-nkode/pkg/nkode-core/sqlc"
"log"
"net/http"
"os"
@@ -74,7 +75,7 @@ func main() {
defer emailQueue.Stop()
sqlitedb := repository.NewSqliteRepository(queue, ctx)
nkodeApi := api.NewNKodeAPI(&sqlitedb, emailQueue)
nkodeApi := api2.NewNKodeAPI(&sqlitedb, emailQueue)
AddDefaultCustomer(nkodeApi)
handler := api.NKodeHandler{Api: nkodeApi}
@@ -116,13 +117,13 @@ func corsMiddleware(next http.Handler) http.Handler {
})
}
func AddDefaultCustomer(nkodeApi api.NKodeAPI) {
func AddDefaultCustomer(nkodeApi api2.NKodeAPI) {
newId, err := uuid.Parse("ed9ed6e0-082c-4b57-8d8c-f00ed6493457")
if err != nil {
log.Fatal(err)
}
customerId := models.CustomerId(newId)
nkodePolicy := models.NewDefaultNKodePolicy()
customerId := entities.CustomerId(newId)
nkodePolicy := entities.NewDefaultNKodePolicy()
_, err = nkodeApi.CreateNewCustomer(nkodePolicy, &customerId)
if err != nil {
log.Println(err)

View File

@@ -6,9 +6,9 @@ import (
"fmt"
"github.com/stretchr/testify/assert"
"go-nkode/internal/api"
"go-nkode/internal/entities"
"go-nkode/internal/models"
"go-nkode/internal/security"
"go-nkode/pkg/nkode-core/entities"
security2 "go-nkode/pkg/nkode-core/security"
"io"
"net/http"
"strings"
@@ -18,7 +18,7 @@ import (
func TestApi(t *testing.T) {
base := "http://localhost:8080"
newCustomerBody := models.NewCustomerPost{
NKodePolicy: models.NewDefaultNKodePolicy(),
NKodePolicy: entities.NewDefaultNKodePolicy(),
}
kp := entities.KeypadDimension{
AttrsPerKey: 14,
@@ -27,7 +27,7 @@ func TestApi(t *testing.T) {
var customerResp models.CreateNewCustomerResp
testApiPost(t, base+api.CreateNewCustomer, newCustomerBody, &customerResp)
userEmail := "test_username" + security.GenerateRandomString(12) + "@example.com"
userEmail := "test_username" + security2.GenerateRandomString(12) + "@example.com"
signupInterfaceBody := models.GenerateSignupRestInterfacePost{
CustomerId: customerResp.CustomerId,
AttrsPerKey: kp.AttrsPerKey,
@@ -35,7 +35,7 @@ func TestApi(t *testing.T) {
UserEmail: strings.ToUpper(userEmail), // should be case-insensitive
Reset: false,
}
var signupInterfaceResp models.GenerateSignupResetInterfaceResp
var signupInterfaceResp entities.SignupResetInterface
testApiPost(t, base+api.GenerateSignupResetInterface, signupInterfaceBody, &signupInterfaceResp)
assert.Len(t, signupInterfaceResp.SvgInterface, kp.TotalAttrs())
passcodeLen := 4
@@ -66,7 +66,7 @@ func TestApi(t *testing.T) {
UserEmail: userEmail,
}
var loginInterfaceResp models.GetLoginInterfaceResp
var loginInterfaceResp entities.LoginInterface
testApiPost(t, base+api.GetLoginInterface, loginInterfaceBody, &loginInterfaceResp)
assert.Equal(t, loginInterfaceResp.AttrsPerKey, kp.AttrsPerKey)
assert.Equal(t, loginInterfaceResp.NumbOfKeys, kp.NumbOfKeys)
@@ -78,11 +78,11 @@ func TestApi(t *testing.T) {
KeySelection: loginKeySelection,
}
var jwtTokens security.AuthenticationTokens
var jwtTokens security2.AuthenticationTokens
testApiPost(t, base+api.Login, loginBody, &jwtTokens)
refreshClaims, err := security.ParseRegisteredClaimToken(jwtTokens.RefreshToken)
refreshClaims, err := security2.ParseRegisteredClaimToken(jwtTokens.RefreshToken)
assert.Equal(t, refreshClaims.Subject, userEmail)
accessClaims, err := security.ParseRegisteredClaimToken(jwtTokens.AccessToken)
accessClaims, err := security2.ParseRegisteredClaimToken(jwtTokens.AccessToken)
assert.Equal(t, accessClaims.Subject, userEmail)
renewBody := models.RenewAttributesPost{CustomerId: customerResp.CustomerId}
testApiPost(t, base+api.RenewAttributes, renewBody, nil)
@@ -104,7 +104,7 @@ func TestApi(t *testing.T) {
var refreshTokenResp models.RefreshTokenResp
testApiGet(t, base+api.RefreshToken, &refreshTokenResp, jwtTokens.RefreshToken)
accessClaims, err = security.ParseRegisteredClaimToken(refreshTokenResp.AccessToken)
accessClaims, err = security2.ParseRegisteredClaimToken(refreshTokenResp.AccessToken)
assert.NoError(t, err)
assert.Equal(t, accessClaims.Subject, userEmail)
}