Исходники и презентации
This commit is contained in:
9
lessons/interfaces/consumer_interface/entity/client.go
Normal file
9
lessons/interfaces/consumer_interface/entity/client.go
Normal file
@ -0,0 +1,9 @@
|
||||
package entity
|
||||
|
||||
type Client struct {
|
||||
Id int
|
||||
Name string
|
||||
Surname string
|
||||
Age int
|
||||
Address string
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
package service
|
||||
|
||||
import "golang_course/lessons/interfaces/consumer_interface/entity"
|
||||
|
||||
type clientUpdater interface {
|
||||
UpdateClient(entity.Client) error
|
||||
}
|
||||
|
||||
type ClientUpdater struct {
|
||||
repository clientUpdater
|
||||
}
|
||||
|
||||
func NewClientUpdater(repository clientUpdater) ClientUpdater {
|
||||
return ClientUpdater{
|
||||
repository: repository,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *ClientUpdater) UpdateClient(client entity.Client) error {
|
||||
return s.repository.UpdateClient(client)
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package service
|
||||
|
||||
import "golang_course/lessons/interfaces/consumer_interface/entity"
|
||||
|
||||
type clientGetter interface {
|
||||
GetClient(int) (entity.Client, error)
|
||||
}
|
||||
|
||||
type MessageSender struct {
|
||||
repository clientGetter
|
||||
}
|
||||
|
||||
func NewMessageSender(repository clientGetter) MessageSender {
|
||||
return MessageSender{
|
||||
repository: repository,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MessageSender) SendMessage(userId int, message string) error {
|
||||
_, err := s.repository.GetClient(userId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// send message to client
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package mysql
|
||||
|
||||
import "golang_course/lessons/interfaces/consumer_interface/entity"
|
||||
|
||||
type MySQLStorage struct{}
|
||||
|
||||
func (s *MySQLStorage) GetAllClients() ([]entity.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) GetClientsByAge(age int) ([]entity.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) GetClient(id int) (entity.Client, error) {
|
||||
// already implemented
|
||||
return entity.Client{}, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) RemoveClient(id int) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) UpdateClient(client entity.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) CreateClient(client entity.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package redis
|
||||
|
||||
import "golang_course/lessons/interfaces/consumer_interface/entity"
|
||||
|
||||
type RedisStorage struct{}
|
||||
|
||||
func (s *RedisStorage) GetAllClients() ([]entity.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) GetClientsByAge(age int) ([]entity.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) GetClient(id int) (entity.Client, error) {
|
||||
// already implemented
|
||||
return entity.Client{}, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) RemoveClient(id int) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) UpdateClient(client entity.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) CreateClient(client entity.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user