package storage import ( "log" "os" "git.obamna.ru/erius/ozon-task/graph/model" "git.obamna.ru/erius/ozon-task/internal/storage/db" ) const ( inMemory = "inmemory" postgres = "postgres" ) var storage = os.Getenv("APP_STORAGE") type Storage interface { AddPost(input *model.PostInput) (*model.AddResult, error) AddComment(input *model.CommentInput) (*model.AddResult, error) GetPosts() ([]*model.Post, error) } func InitStorage() (Storage, error) { log.Printf("initializing storage of type %s...", storage) switch storage { case inMemory: return InitInMemory(), nil case postgres: return db.InitPostgres() default: log.Printf("storage of type %s doesn't exists, falling back to default in-memory storage", storage) return InitInMemory(), nil } }