44 lines
952 B
Go
44 lines
952 B
Go
package app
|
|
|
|
import (
|
|
"twitch-clone/chat-service/logic"
|
|
"twitch-clone/chat-service/models"
|
|
"twitch-clone/chat-service/repository"
|
|
"twitch-clone/chat-service/repository/scylla"
|
|
service "twitch-clone/chat-service/services"
|
|
|
|
"github.com/joho/godotenv"
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/labstack/echo/v4/middleware"
|
|
)
|
|
|
|
func Run() {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
e := echo.New()
|
|
var c repository.ChatRepository = scylla.NewChatRepository()
|
|
var s service.ChatService = logic.NewChatService(c)
|
|
|
|
e.Use(middleware.Logger())
|
|
e.Use(middleware.Recover())
|
|
|
|
e.GET("*", func(c echo.Context) error {
|
|
return s.Subscribe(c.Response().Writer, c.Request())
|
|
})
|
|
|
|
e.POST("*", func(c echo.Context) error {
|
|
return s.Publish(c.Request().URL.Path, &models.ChatMessage{
|
|
FromUserID: 0,
|
|
FromUser: "niku",
|
|
ToUserID: 0,
|
|
ToUser: "niku",
|
|
Content: "Welcome",
|
|
})
|
|
})
|
|
|
|
e.Logger.Fatal(e.Start(":1323"))
|
|
}
|