Compare commits

...

5 Commits
dev ... lint

Author SHA1 Message Date
a71208de38 - 2024-12-24 16:02:15 +03:00
be56513c8b - 2024-12-24 16:01:07 +03:00
Pasha
d83c3f2160 some upd 2024-12-18 20:05:44 +03:00
Pasha
10cd97b46d some upd 2024-12-18 19:55:08 +03:00
Pasha
8096c7703f some upd 2024-12-18 19:53:57 +03:00
9 changed files with 65 additions and 60 deletions

@ -1,11 +1,11 @@
package main package main
import ( import (
"gitea.pena/PenaSide/verification/internal/app"
"gitea.pena/PenaSide/verification/internal/config"
"go.uber.org/zap" "go.uber.org/zap"
"log" "log"
"os" "os"
"gitea.pena/PenaSide/verification/internal/app"
"gitea.pena/PenaSide/verification/internal/config"
_ "gitea.pena/PenaSide/linters-golang/pkg/dummy" _ "gitea.pena/PenaSide/linters-golang/pkg/dummy"
"time" "time"

@ -111,13 +111,13 @@ func Run(cfg *config.Config, build Build) {
go func() { go func() {
if err := userSrv.Start(cfg.ClientHttpURL); err != nil { if err := userSrv.Start(cfg.ClientHttpURL); err != nil {
logger.Fatal("Server startup error", zap.Error(err)) logger.Fatal("Client server startup error", zap.Error(err))
} }
}() }()
go func() { go func() {
if err := adminSrv.Start(cfg.AdminHttpURL); err != nil { if err := adminSrv.Start(cfg.AdminHttpURL); err != nil {
logger.Fatal("Server startup error", zap.Error(err)) logger.Fatal("Admin server startup error", zap.Error(err))
} }
}() }()

@ -4,9 +4,9 @@ import (
"bytes" "bytes"
_ "embed" _ "embed"
"fmt" "fmt"
"gitea.pena/PenaSide/verification/internal/models"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/verification/internal/models"
"text/template" "text/template"
) )
@ -35,7 +35,6 @@ func NewTelegram(deps Deps) *Telegram {
} }
func (t *Telegram) SendVerification(data *models.Verification, url string, isUpdate bool) error { func (t *Telegram) SendVerification(data *models.Verification, url string, isUpdate bool) error {
fmt.Println("VERT", data, url,isUpdate)
var tplPath string var tplPath string
if isUpdate { if isUpdate {
tplPath = UpdatedVerification tplPath = UpdatedVerification
@ -43,13 +42,10 @@ func (t *Telegram) SendVerification(data *models.Verification, url string, isUpd
tplPath = NewVerification tplPath = NewVerification
} }
fmt.Println("VERT1", tplPath)
var userURL string var userURL string
userURL = fmt.Sprintf("%s/users/%s", t.stagingURL, data.UserID) userURL = fmt.Sprintf("%s/users/%s", t.stagingURL, data.UserID)
fmt.Println("VERT2", userURL)
tpl, err := template.New("verification_template").Parse(tplPath) tpl, err := template.New("verification_template").Parse(tplPath)
fmt.Println("VERT333", tpl,err)
if err != nil { if err != nil {
return fmt.Errorf("error parsing template: %w", err) return fmt.Errorf("error parsing template: %w", err)
} }
@ -69,14 +65,12 @@ func (t *Telegram) SendVerification(data *models.Verification, url string, isUpd
} }
err = tpl.Execute(&text, toTG) err = tpl.Execute(&text, toTG)
fmt.Println("VERT433", err)
if err != nil { if err != nil {
return fmt.Errorf("error executing template: %w", err) return fmt.Errorf("error executing template: %w", err)
} }
msg := tgbotapi.NewMessage(t.chatID, text.String()) msg := tgbotapi.NewMessage(t.chatID, text.String())
fmt.Println("VERT433", err, t.chatID, text.String())
_, err = t.bot.Send(msg) _, err = t.bot.Send(msg)
if err != nil { if err != nil {
return fmt.Errorf("error sending message: %w", err) return fmt.Errorf("error sending message: %w", err)

@ -3,10 +3,10 @@ package admin
import "github.com/gofiber/fiber/v2" import "github.com/gofiber/fiber/v2"
func (r *VerifyAdminController) Register(router fiber.Router) { func (r *VerifyAdminController) Register(router fiber.Router) {
router.Get("/verification/:userID", r.GetVerification) router.Get("/:userID", r.GetVerification)
router.Patch("/verification", r.SetVerificationStatus) router.Patch("/", r.SetVerificationStatus)
} }
func (r *VerifyAdminController) Name() string { func (r *VerifyAdminController) Name() string {
return "" return "verification"
} }

@ -3,11 +3,11 @@ package user
import "github.com/gofiber/fiber/v2" import "github.com/gofiber/fiber/v2"
func (r *VerifyUserController) Register(router fiber.Router) { func (r *VerifyUserController) Register(router fiber.Router) {
router.Get("/verification", r.GetVerification) router.Get("/", r.GetVerification)
router.Post("/verification", r.CreateVerification) router.Post("/", r.CreateVerification)
router.Put("/verification", r.SetVerificationFile) router.Put("/", r.SetVerificationFile)
} }
func (r *VerifyUserController) Name() string { func (r *VerifyUserController) Name() string {
return "" return "verification"
} }

@ -4,17 +4,18 @@ import (
"context" "context"
"errors" "errors"
"fmt" "fmt"
"gitea.pena/PenaSide/verification/internal/utils"
"mime/multipart" "mime/multipart"
"time"
"strings" "strings"
"time"
"gitea.pena/PenaSide/verification/internal/models"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options" "go.mongodb.org/mongo-driver/mongo/options"
"go.uber.org/zap" "go.uber.org/zap"
"gitea.pena/PenaSide/verification/internal/models"
) )
type VerificationRepository struct { type VerificationRepository struct {
@ -54,7 +55,7 @@ func (r *VerificationRepository) Insert(
return nil, err return nil, err
} }
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, innFH.Filename), inn, innFH.Size, minio.PutObjectOptions{}) _, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), inn, innFH.Size, minio.PutObjectOptions{})
if r.err(err) { if r.err(err) {
return nil, err return nil, err
} }
@ -65,7 +66,7 @@ func (r *VerificationRepository) Insert(
} }
// Put rule file // Put rule file
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, ruleFH.Filename), rule, ruleFH.Size, minio.PutObjectOptions{}) _, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), rule, ruleFH.Size, minio.PutObjectOptions{})
if r.err(err) { if r.err(err) {
return nil, err return nil, err
} }
@ -77,7 +78,7 @@ func (r *VerificationRepository) Insert(
return nil, err return nil, err
} }
_, err = r.s3.PutObject(ctx, VerificationBucket, fmt.Sprintf("%s/%s/%s", r.folder, userID, certFH.Filename), cert, certFH.Size, minio.PutObjectOptions{}) _, err = r.s3.PutObject(ctx, VerificationBucket, utils.GenerateFilePath(r.folder, userID, innFH.Filename), cert, certFH.Size, minio.PutObjectOptions{})
if r.err(err) { if r.err(err) {
return nil, err return nil, err
} }
@ -85,7 +86,7 @@ func (r *VerificationRepository) Insert(
record.Files = []models.VerificationFile{ record.Files = []models.VerificationFile{
{ {
Name: "certificate", Name: "certificate",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, certFH.Filename), Url: utils.GenerateURL(r.url, r.folder, userID, certFH.Filename),
}, },
} }
} }
@ -94,11 +95,11 @@ func (r *VerificationRepository) Insert(
record.Files = append(record.Files, []models.VerificationFile{ record.Files = append(record.Files, []models.VerificationFile{
{ {
Name: "inn", Name: "inn",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, innFH.Filename), Url: utils.GenerateURL(r.url, r.folder, userID, innFH.Filename),
}, },
{ {
Name: "rule", Name: "rule",
Url: fmt.Sprintf("%s/%s/%s/%s", r.url, r.folder, userID, ruleFH.Filename), Url: utils.GenerateURL(r.url, r.folder, userID, ruleFH.Filename),
}, },
}...) }...)
@ -114,9 +115,10 @@ func (r *VerificationRepository) Insert(
func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string) (*models.Verification, error) { func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string) (*models.Verification, error) {
if userID == "" { if userID == "" {
err := errors.New("userID cannot be empty") err := errors.New("userID cannot be empty")
r.logger.Error("VerificationRepositoryError", zap.Error(err)) if r.err(err) {
return nil, err return nil, err
} }
}
filter := bson.M{ filter := bson.M{
"user_id": userID, "user_id": userID,
@ -130,9 +132,10 @@ func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string)
if err == mongo.ErrNoDocuments { if err == mongo.ErrNoDocuments {
return nil, nil return nil, nil
} }
r.logger.Error("VerificationRepositoryError", zap.Error(err)) if r.err(err) {
return nil, err return nil, err
} }
}
return &result, nil return &result, nil
} }
@ -140,9 +143,10 @@ func (r *VerificationRepository) GetByUserID(ctx context.Context, userID string)
func (r *VerificationRepository) Get(ctx context.Context, id string) (*models.Verification, error) { func (r *VerificationRepository) Get(ctx context.Context, id string) (*models.Verification, error) {
if id == "" { if id == "" {
err := errors.New("_id cannot be empty") err := errors.New("_id cannot be empty")
r.logger.Error("VerificationRepositoryError", zap.Error(err)) if r.err(err) {
return nil, err return nil, err
} }
}
filter := bson.M{ filter := bson.M{
"_id": id, "_id": id,
@ -154,9 +158,10 @@ func (r *VerificationRepository) Get(ctx context.Context, id string) (*models.Ve
if err == mongo.ErrNoDocuments { if err == mongo.ErrNoDocuments {
return nil, nil return nil, nil
} }
r.logger.Error("VerificationRepositoryError", zap.Error(err)) if r.err(err) {
return nil, err return nil, err
} }
}
return &result, nil return &result, nil
} }
@ -228,7 +233,6 @@ func (r *VerificationRepository) UpdateFile(ctx context.Context, userID, fileNam
// update in mongodb // update in mongodb
result, err := r.Update(ctx, &models.Verification{ID: verification.ID, Files: verification.Files}) result, err := r.Update(ctx, &models.Verification{ID: verification.ID, Files: verification.Files})
if r.err(err) { if r.err(err) {
return nil, err return nil, err

@ -4,14 +4,16 @@ import (
"gitea.pena/PenaSide/verification/internal/models" "gitea.pena/PenaSide/verification/internal/models"
"strings" "strings"
"github.com/gofiber/fiber/v2"
"gitea.pena/PenaSide/common/jwt_adapter" "gitea.pena/PenaSide/common/jwt_adapter"
"github.com/gofiber/fiber/v2"
) )
const localUserIDHeader = "LocalUserID"
func LocalJwt() fiber.Handler { func LocalJwt() fiber.Handler {
return func(c *fiber.Ctx) error { return func(c *fiber.Ctx) error {
if c.Get("LocalUserID") != "" { if c.Get(localUserIDHeader) != "" {
c.Locals("userID", c.Get("LocalUserID")) c.Locals("userID", c.Get(localUserIDHeader))
} }
return c.Next() return c.Next()

11
internal/utils/utils.go Normal file

@ -0,0 +1,11 @@
package utils
import "fmt"
func GenerateFilePath(folder, userID, filename string) string {
return fmt.Sprintf("%s/%s/%s", folder, userID, filename)
}
func GenerateURL(baseURL, folder, userID, filename string) string {
return fmt.Sprintf("%s/%s/%s/%s", baseURL, folder, userID, filename)
}

@ -1,20 +1,14 @@
TELEGRAM_TOKEN=6712573453:AAFbioUuXf0Te73MUCqa0_h09qEQ1iQREas TELEGRAM_TOKEN=6712573453:AAFqTOsgwe_j48ZQ1GzWKQDT5Nwr-SAWjz8
TELEGRAM_CHANNEL_ID=542073142 TELEGRAM_CHANNEL_ID=-1002177203276
HTTP_ADDRESS_USER=0.0.0.0:8080 CLIENT_HTTP_URL=0.0.0.0:8080
HTTP_ADDRESS_ADMIN=0.0.0.0:8081 ADMIN_HTTP_URL=0.0.0.0:8081
MONGO_HOST=localhost MONGO_URL=mongodb://test:test@localhost:27020/
MONGO_PORT=27020 MONGO_DB_NAME=admin
MONGO_USER=test S3_ACCESS_KEY=admin
MONGO_PASSWORD=test
MONGO_AUTH=admin
MONGO_DATABASE_NAME=admin
S3_ENDPOINT=localhost:9005
S3_ACCESS_KEY_ID=admin
S3_SECRET_KEY=admin123 S3_SECRET_KEY=admin123
CUSTOMER_SVC_ADDRESS=localhost:9003 VERIFICATION_MICROSERVICE_URL=https://sadmin.pena
STAGING_URL=https://sadmin.pena
S3_FOLDER=videodata S3_FOLDER=videodata
S3_FILE_URL=http://localhost:9005/videodata S3_FILE_URL=http://localhost:9005/videodata
CUSTOMER_RPC_HOST=localhost:9003 CUSTOMER_MICROSERVICE_RPC_URL=localhost:9003
TRASH_LOG_HOST=localhost:7113 TRASH_LOG_HOST=localhost:7113
MODULE_LOGGER=verify-local S3_ENDPOINT=localhost:9000