generated from VLADIMIR/template
update
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"evening_detective_server/internal/repos"
|
||||
"evening_detective_server/internal/services/users_service"
|
||||
proto "evening_detective_server/proto"
|
||||
|
||||
"google.golang.org/protobuf/types/known/timestamppb"
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
// mapUser преобразует пользователя в proto-структуру. Возвращает nil для
|
||||
// обезличенного автора (аккаунт удалён, контент сохранён) — клиент отображает
|
||||
// такого автора как «Автор удалён».
|
||||
func mapUser(o *repos.User) *proto.User {
|
||||
func mapUser(o *users_service.User) *proto.User {
|
||||
if o == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"evening_detective_server/internal/repos"
|
||||
"evening_detective_server/internal/services/users_service"
|
||||
)
|
||||
|
||||
func TestMapUser(t *testing.T) {
|
||||
@@ -15,7 +15,7 @@ func TestMapUser(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("обычный пользователь маппится полностью", func(t *testing.T) {
|
||||
u := &repos.User{
|
||||
u := &users_service.User{
|
||||
ID: 42,
|
||||
Username: "detective",
|
||||
Email: "d@example.com",
|
||||
|
||||
@@ -2,7 +2,7 @@ package scenarios_service
|
||||
|
||||
import (
|
||||
"evening_detective_server/internal/modules/storytelling"
|
||||
"evening_detective_server/internal/repos"
|
||||
"evening_detective_server/internal/services/users_service"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -12,7 +12,7 @@ type Scenario struct {
|
||||
Description *string
|
||||
Image *string
|
||||
Story *storytelling.Story
|
||||
Author *repos.User
|
||||
Author *users_service.User
|
||||
Status string
|
||||
UpdatedAt time.Time
|
||||
CreatedAt time.Time
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"evening_detective_server/internal/modules/file_storage"
|
||||
"evening_detective_server/internal/modules/storytelling"
|
||||
"evening_detective_server/internal/repos"
|
||||
"evening_detective_server/internal/services/users_service"
|
||||
)
|
||||
|
||||
func mapScenariosLight(
|
||||
@@ -48,7 +49,7 @@ func MapScenarioLight(
|
||||
Description: o.Description,
|
||||
Image: mapImage(o.Image, domain),
|
||||
Story: nil,
|
||||
Author: o.Author,
|
||||
Author: mapAuthor(o.Author),
|
||||
Status: o.Status,
|
||||
UpdatedAt: o.UpdatedAt,
|
||||
CreatedAt: o.CreatedAt,
|
||||
@@ -57,6 +58,16 @@ func MapScenarioLight(
|
||||
}
|
||||
}
|
||||
|
||||
func mapAuthor(user *repos.User) *users_service.User {
|
||||
if user == nil {
|
||||
return nil
|
||||
}
|
||||
return &users_service.User{
|
||||
ID: user.ID,
|
||||
Username: user.Username,
|
||||
}
|
||||
}
|
||||
|
||||
func mapScenario(
|
||||
o *repos.Scenario,
|
||||
domain string,
|
||||
|
||||
@@ -326,23 +326,23 @@ func (s *UsersService) Refresh(
|
||||
|
||||
func (s *UsersService) GetUsers(
|
||||
ctx context.Context,
|
||||
) ([]*repos.User, error) {
|
||||
) ([]*User, error) {
|
||||
users, err := s.usersRepo.GetUsers(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return users, nil
|
||||
return mapUsers(users), nil
|
||||
}
|
||||
|
||||
func (s *UsersService) GetUserByID(
|
||||
ctx context.Context,
|
||||
userID int,
|
||||
) (*repos.User, error) {
|
||||
) (*User, error) {
|
||||
user, err := s.usersRepo.GetUserByID(ctx, userID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return user, nil
|
||||
return mapUser(user), nil
|
||||
}
|
||||
|
||||
func (s *UsersService) AddUserRole(
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
package users_service
|
||||
|
||||
import "time"
|
||||
|
||||
// User — пользователь, доступный прикладным сценариям и выдаче наружу.
|
||||
type User struct {
|
||||
ID int
|
||||
Username string
|
||||
Email string
|
||||
Roles []string
|
||||
IsActive bool
|
||||
CreatedAt time.Time
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package users_service
|
||||
|
||||
import "evening_detective_server/internal/repos"
|
||||
|
||||
func mapUser(user *repos.User) *User {
|
||||
if user == nil {
|
||||
return nil
|
||||
}
|
||||
return &User{
|
||||
ID: user.ID,
|
||||
Username: user.Username,
|
||||
Email: user.Email,
|
||||
Roles: user.Roles,
|
||||
IsActive: user.IsActive,
|
||||
CreatedAt: user.CreatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func mapUsers(users []*repos.User) []*User {
|
||||
result := make([]*User, 0, len(users))
|
||||
for _, user := range users {
|
||||
result = append(result, mapUser(user))
|
||||
}
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user