Исходники и презентации
This commit is contained in:
@ -0,0 +1,17 @@
|
||||
package service
|
||||
|
||||
import "golang_course/lessons/interfaces/producer_interface/storage"
|
||||
|
||||
type ClientUpdater struct {
|
||||
repository storage.ClientStorage
|
||||
}
|
||||
|
||||
func NewClientUpdater(repository storage.ClientStorage) ClientUpdater {
|
||||
return ClientUpdater{
|
||||
repository: repository,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *ClientUpdater) UpdateClient(client storage.Client) error {
|
||||
return s.repository.UpdateClient(client)
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package service
|
||||
|
||||
import "golang_course/lessons/interfaces/producer_interface/storage"
|
||||
|
||||
type MessageSender struct {
|
||||
repository storage.ClientStorage
|
||||
}
|
||||
|
||||
func NewMessageSender(repository storage.ClientStorage) 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
|
||||
}
|
||||
19
lessons/interfaces/producer_interface/storage/client.go
Normal file
19
lessons/interfaces/producer_interface/storage/client.go
Normal file
@ -0,0 +1,19 @@
|
||||
package storage
|
||||
|
||||
type Client struct {
|
||||
Id int
|
||||
Name string
|
||||
Surname string
|
||||
Age int
|
||||
Address string
|
||||
}
|
||||
|
||||
type ClientStorage interface {
|
||||
GetAllClients() ([]Client, error)
|
||||
GetClientsByAge(int) ([]Client, error)
|
||||
GetClient(int) (Client, error)
|
||||
RemoveClient(int) error
|
||||
UpdateClient(Client) error
|
||||
CreateClient(Client) error
|
||||
// ...
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package mysql
|
||||
|
||||
import "golang_course/lessons/interfaces/producer_interface/storage"
|
||||
|
||||
type MySQLStorage struct{}
|
||||
|
||||
func (s *MySQLStorage) GetAllClients() ([]storage.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) GetClientsByAge(age int) ([]storage.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) GetClient(id int) (storage.Client, error) {
|
||||
// already implemented
|
||||
return storage.Client{}, nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) RemoveClient(id int) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) UpdateClient(client storage.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MySQLStorage) CreateClient(client storage.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package redis
|
||||
|
||||
import "golang_course/lessons/interfaces/producer_interface/storage"
|
||||
|
||||
type RedisStorage struct{}
|
||||
|
||||
func (s *RedisStorage) GetAllClients() ([]storage.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) GetClientsByAge(age int) ([]storage.Client, error) {
|
||||
// already implemented
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) GetClient(id int) (storage.Client, error) {
|
||||
// already implemented
|
||||
return storage.Client{}, nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) RemoveClient(id int) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) UpdateClient(client storage.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *RedisStorage) CreateClient(client storage.Client) error {
|
||||
// already implemented
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user