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