forked from ebhomengo/niki
fix(niki): linter errors fixed
This commit is contained in:
parent
ce762ac29c
commit
052f062cca
3
Makefile
3
Makefile
|
@ -16,3 +16,6 @@ format:
|
|||
@gci write $(ROOT)
|
||||
@which golangci-lint || (go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.54.0)
|
||||
@golangci-lint run --fix
|
||||
|
||||
build:
|
||||
go build main.go
|
14
config.yml
14
config.yml
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
type: yml
|
||||
auth:
|
||||
sign_key: jwt_secret
|
||||
|
||||
http_server:
|
||||
port: 8080
|
||||
|
||||
mysql:
|
||||
port: 3308
|
||||
host: localhost
|
||||
db_name: niki_db
|
||||
username: niki
|
||||
password: nikit0lk2o20
|
|
@ -2,7 +2,7 @@ package adminkindboxhandler
|
|||
|
||||
import (
|
||||
adminkindboxservice "git.gocasts.ir/ebhomengo/niki/service/admin/kind_box"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth/user"
|
||||
adminkindboxvalidator "git.gocasts.ir/ebhomengo/niki/validator/admin/kind_box"
|
||||
)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ package adminkindboxreqhandler
|
|||
|
||||
import (
|
||||
adminkindboxreqservice "git.gocasts.ir/ebhomengo/niki/service/admin/kind_box_req"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth/user"
|
||||
adminkindboxreqvalidator "git.gocasts.ir/ebhomengo/niki/validator/admin/kind_box_req"
|
||||
)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package benefactorkindboxhandler
|
||||
|
||||
import (
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth/user"
|
||||
benefactorkindboxservice "git.gocasts.ir/ebhomengo/niki/service/benefactor/kind_box"
|
||||
benefactorkindboxvalidator "git.gocasts.ir/ebhomengo/niki/validator/benefactor/kind_box"
|
||||
)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package benefactorkindboxreqhandler
|
||||
|
||||
import (
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
|
||||
authservice "git.gocasts.ir/ebhomengo/niki/service/auth/user"
|
||||
benefactorkindboxreqservice "git.gocasts.ir/ebhomengo/niki/service/benefactor/kind_box_req"
|
||||
benefactorkindboxreqvalidator "git.gocasts.ir/ebhomengo/niki/validator/benefactor/kind_box_req"
|
||||
)
|
||||
|
|
|
@ -18,13 +18,3 @@ services:
|
|||
- MYSQL_DATABASE=niki
|
||||
|
||||
|
||||
#set mysql in ubuntu
|
||||
#//https://www.tecmint.com/fix-mysql-error-1819-hy000/
|
||||
#
|
||||
# sudo mysql_secure_installation
|
||||
# sudo systemctl start mysql
|
||||
# mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'g#Y!298mKwz85';
|
||||
# mysql> create database orginfo;
|
||||
# mysql> grant all privileges on orginfo.* to user@localhost;
|
||||
# mysql> set password for user@localhost = password("g#Y!298mKwz85");
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package adminparam
|
|
@ -1 +0,0 @@
|
|||
package superadminparam
|
|
@ -1 +0,0 @@
|
|||
package superadminparam
|
|
@ -1 +0,0 @@
|
|||
package superadminparam
|
|
@ -1 +0,0 @@
|
|||
package superadminparam
|
|
@ -1 +0,0 @@
|
|||
package superadminparam
|
|
@ -1,7 +0,0 @@
|
|||
package benefactorparam
|
||||
|
||||
type BenefactorProfileRequest struct{}
|
||||
|
||||
type BenefactorProfileResponse struct {
|
||||
Benefactor entity.Benefactor
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
package benefactorparam
|
||||
|
||||
type BenefactorLoginRequest struct{}
|
||||
|
||||
type BenefactorLoginResponse struct {
|
||||
Benefactor entity.Benefactor
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
package benefactorparam
|
||||
|
||||
import entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
|
||||
type BenefactorRegisterRequest struct{}
|
||||
|
||||
type BenefactorRegisterResponse struct {
|
||||
Benefactor entity.Benefactor
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
package benefactorparam
|
|
@ -1 +0,0 @@
|
|||
package staffparam
|
|
@ -1 +0,0 @@
|
|||
package staffparam
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package adminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -1 +0,0 @@
|
|||
package superadminservice
|
|
@ -0,0 +1 @@
|
|||
package admin
|
|
@ -1,4 +1,4 @@
|
|||
package authservice
|
||||
package admin
|
||||
|
||||
import (
|
||||
"time"
|
|
@ -0,0 +1 @@
|
|||
package user
|
|
@ -0,0 +1 @@
|
|||
package user
|
|
@ -0,0 +1,23 @@
|
|||
package user
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
SignKey string `koanf:"sign_key"`
|
||||
AccessExpirationTime time.Duration `koanf:"access_expiration_time"`
|
||||
RefreshExpirationTime time.Duration `koanf:"refresh_expiration_time"`
|
||||
AccessSubject string `koanf:"access_subject"`
|
||||
RefreshSubject string `koanf:"refresh_subject"`
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
config Config
|
||||
}
|
||||
|
||||
func New(cfg Config) Service {
|
||||
return Service{
|
||||
config: cfg,
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
package benefactorservice
|
|
@ -1,45 +0,0 @@
|
|||
package benefactorservice
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"gameapp/param"
|
||||
"gameapp/pkg/richerror"
|
||||
)
|
||||
|
||||
func (s Service) Login(req param.LoginRequest) (param.LoginResponse, error) {
|
||||
const op = "benefactorservice.Login"
|
||||
|
||||
// TODO - it would be better to user two separate method for existence check and getUserByPhoneNumber
|
||||
user, err := s.repo.GetUserByPhoneNumber(req.PhoneNumber)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, richerror.New(op).WithErr(err).
|
||||
WithMeta(map[string]interface{}{"phone_number": req.PhoneNumber})
|
||||
}
|
||||
|
||||
if user.Password != getMD5Hash(req.Password) {
|
||||
return param.LoginResponse{}, fmt.Errorf("username or password isn't correct")
|
||||
}
|
||||
|
||||
accessToken, err := s.auth.CreateAccessToken(user)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, fmt.Errorf("unexpected error: %w", err)
|
||||
}
|
||||
|
||||
refreshToken, err := s.auth.CreateRefreshToken(user)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, fmt.Errorf("unexpected error: %w", err)
|
||||
}
|
||||
|
||||
return param.LoginResponse{
|
||||
User: param.UserInfo{
|
||||
ID: user.ID,
|
||||
PhoneNumber: user.PhoneNumber,
|
||||
Name: user.Name,
|
||||
},
|
||||
Tokens: param.Tokens{
|
||||
AccessToken: accessToken,
|
||||
RefreshToken: refreshToken,
|
||||
},
|
||||
}, nil
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package benefactorservice
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
entity "git.gocasts.ir/ebhomengo/niki/entity"
|
||||
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor"
|
||||
)
|
||||
|
||||
// rol
|
||||
// login(sms)-> {rigester}() -> next
|
||||
func (s Service) Register(req param.RegisterRequest) (param.RegisterResponse, error) {
|
||||
// TODO - we should verify phone number by verification code
|
||||
|
||||
// TODO - replace md5 with bcrypt
|
||||
user := entity.Benefactor{
|
||||
ID: 0,
|
||||
PhoneNumber: req.PhoneNumber,
|
||||
Name: req.Name,
|
||||
Password: getMD5Hash(req.Password),
|
||||
Role: entity.BenefactorRole,
|
||||
}
|
||||
|
||||
// create new user in storage
|
||||
createdUser, err := s.repo.Register(user)
|
||||
if err != nil {
|
||||
return param.RegisterResponse{}, fmt.Errorf("unexpected error: %w", err)
|
||||
}
|
||||
|
||||
// return created user
|
||||
return param.RegisterResponse{User: param.UserInfo{
|
||||
ID: createdUser.ID,
|
||||
PhoneNumber: createdUser.Name,
|
||||
Name: createdUser.PhoneNumber,
|
||||
}}, nil
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
package benefactorservice
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
Register(benefactor entity.Benefactor) (entity.Benefactor, error)
|
||||
GetUserByPhoneNumber(phoneNumber string) (entity.Benefactor, error)
|
||||
GetUserByID(ctx context.Context, userID uint) (entity.Benefactor, error)
|
||||
}
|
||||
|
||||
type AuthGenerator interface {
|
||||
CreateAccessToken(benefactor entity.Benefactor) (string, error)
|
||||
CreateRefreshToken(benefactor entity.Benefactor) (string, error)
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
auth AuthGenerator
|
||||
repo Repository
|
||||
}
|
||||
|
||||
func New(authGenerator AuthGenerator, repo Repository) Service {
|
||||
return Service{auth: authGenerator, repo: repo}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
package benefactorservice
|
|
@ -1 +0,0 @@
|
|||
package staffservice
|
|
@ -1,45 +0,0 @@
|
|||
package staffservice
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"gameapp/param"
|
||||
"gameapp/pkg/richerror"
|
||||
)
|
||||
|
||||
func (s Service) Login(req param.LoginRequest) (param.LoginResponse, error) {
|
||||
const op = "benefactorservice.Login"
|
||||
|
||||
// TODO - it would be better to user two separate method for existence check and getUserByPhoneNumber
|
||||
user, err := s.repo.GetUserByPhoneNumber(req.PhoneNumber)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, richerror.New(op).WithErr(err).
|
||||
WithMeta(map[string]interface{}{"phone_number": req.PhoneNumber})
|
||||
}
|
||||
|
||||
if user.Password != getMD5Hash(req.Password) {
|
||||
return param.LoginResponse{}, fmt.Errorf("username or password isn't correct")
|
||||
}
|
||||
|
||||
accessToken, err := s.auth.CreateAccessToken(user)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, fmt.Errorf("unexpected error: %w", err)
|
||||
}
|
||||
|
||||
refreshToken, err := s.auth.CreateRefreshToken(user)
|
||||
if err != nil {
|
||||
return param.LoginResponse{}, fmt.Errorf("unexpected error: %w", err)
|
||||
}
|
||||
|
||||
return param.LoginResponse{
|
||||
User: param.UserInfo{
|
||||
ID: user.ID,
|
||||
PhoneNumber: user.PhoneNumber,
|
||||
Name: user.Name,
|
||||
},
|
||||
Tokens: param.Tokens{
|
||||
AccessToken: accessToken,
|
||||
RefreshToken: refreshToken,
|
||||
},
|
||||
}, nil
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
package staffservice
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.gocasts.ir/ebhomengo/niki/entity"
|
||||
)
|
||||
|
||||
type Repository interface {
|
||||
Register(benefactor entity.Benefactor) (entity.Benefactor, error)
|
||||
GetUserByPhoneNumber(phoneNumber string) (entity.Benefactor, error)
|
||||
GetUserByID(ctx context.Context, userID uint) (entity.Benefactor, error)
|
||||
}
|
||||
|
||||
type AuthGenerator interface {
|
||||
CreateAccessToken(benefactor entity.Benefactor) (string, error)
|
||||
CreateRefreshToken(benefactor entity.Benefactor) (string, error)
|
||||
}
|
||||
|
||||
type Service struct {
|
||||
auth AuthGenerator
|
||||
repo Repository
|
||||
}
|
||||
|
||||
func New(authGenerator AuthGenerator, repo Repository) Service {
|
||||
return Service{auth: authGenerator, repo: repo}
|
||||
}
|
Loading…
Reference in New Issue