ozon-task/internal/storage/memory.go
2024-06-25 02:34:10 +03:00

41 lines
923 B
Go

package storage
import (
"git.obamna.ru/erius/ozon-task/graph/model"
)
type InMemory struct {
postId uint
commentId uint
posts []*model.Post
comments []*model.Comment
}
func InitInMemory() *InMemory {
return &InMemory{
postId: 0,
commentId: 0,
posts: make([]*model.Post, 0),
comments: make([]*model.Comment, 0),
}
}
func (s *InMemory) AddPost(input *model.PostInput) (*model.AddResult, error) {
post := model.PostFromInput(input)
post.ID = s.postId
s.posts = append(s.posts, post)
s.postId++
return &model.AddResult{ItemID: &post.ID}, nil
}
func (s *InMemory) AddComment(input *model.CommentInput) (*model.AddResult, error) {
comment := model.CommentFromInput(input)
comment.ID = s.commentId
s.comments = append(s.comments, comment)
s.commentId++
return &model.AddResult{ItemID: &comment.ID}, nil
}
func (s InMemory) GetPosts() ([]*model.Post, error) {
return s.posts, nil
}