diff --git a/.idea/Messaging.iml b/.idea/Messaging.iml
new file mode 100644
index 0000000..5e764c4
--- /dev/null
+++ b/.idea/Messaging.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..56fcb14
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ postgresql
+ true
+ org.postgresql.Driver
+ jdbc:postgresql://localhost:5432/hy_messaging
+ $ProjectFileDir$
+
+
+ postgresql
+ true
+ org.postgresql.Driver
+ jdbc:postgresql://im.solsynth.dev:5432/messaging
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..a3ae566
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..6df4889
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pkg/server/channels_api.go b/pkg/server/channels_api.go
index 30adfa9..54c96dc 100644
--- a/pkg/server/channels_api.go
+++ b/pkg/server/channels_api.go
@@ -10,10 +10,8 @@ import (
func getChannel(c *fiber.Ctx) error {
alias := c.Params("channel")
- var channel models.Channel
- if err := database.C.Where(&models.Channel{
- Alias: alias,
- }).First(&channel).Error; err != nil {
+ channel, err := services.GetChannelWithAlias(alias)
+ if err != nil {
return fiber.NewError(fiber.StatusNotFound, err.Error())
}
diff --git a/pkg/server/unified_ws.go b/pkg/server/messages_ws.go
similarity index 96%
rename from pkg/server/unified_ws.go
rename to pkg/server/messages_ws.go
index 086ab99..a51475b 100644
--- a/pkg/server/unified_ws.go
+++ b/pkg/server/messages_ws.go
@@ -8,7 +8,7 @@ import (
"github.com/samber/lo"
)
-func unifiedGateway(c *websocket.Conn) {
+func messageGateway(c *websocket.Conn) {
user := c.Locals("principal").(models.Account)
// Push connection
diff --git a/pkg/server/startup.go b/pkg/server/startup.go
index bc3458c..f7b1274 100644
--- a/pkg/server/startup.go
+++ b/pkg/server/startup.go
@@ -1,13 +1,14 @@
package server
import (
- "git.solsynth.dev/hydrogen/messaging/pkg"
- "github.com/gofiber/contrib/websocket"
- "github.com/gofiber/fiber/v2/middleware/favicon"
"net/http"
"strings"
"time"
+ "git.solsynth.dev/hydrogen/messaging/pkg"
+ "github.com/gofiber/contrib/websocket"
+ "github.com/gofiber/fiber/v2/middleware/favicon"
+
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cache"
"github.com/gofiber/fiber/v2/middleware/cors"
@@ -103,7 +104,7 @@ func NewServer() {
channels.Post("/:channel/calls/ongoing/token", authMiddleware, exchangeCallToken)
}
- api.Get("/unified", authMiddleware, websocket.New(unifiedGateway))
+ api.Get("/ws", authMiddleware, websocket.New(messageGateway))
}
A.Use(favicon.New(favicon.Config{
diff --git a/pkg/services/channels.go b/pkg/services/channels.go
index adb151a..5761f5a 100644
--- a/pkg/services/channels.go
+++ b/pkg/services/channels.go
@@ -2,6 +2,7 @@ package services
import (
"fmt"
+
"git.solsynth.dev/hydrogen/messaging/pkg/database"
"git.solsynth.dev/hydrogen/messaging/pkg/models"
"github.com/samber/lo"
@@ -11,7 +12,7 @@ func GetChannel(id uint) (models.Channel, error) {
var channel models.Channel
if err := database.C.Where(models.Channel{
BaseModel: models.BaseModel{ID: id},
- }).First(&channel).Error; err != nil {
+ }).Preload("Account").First(&channel).Error; err != nil {
return channel, err
}
@@ -22,7 +23,7 @@ func GetChannelWithAlias(alias string) (models.Channel, error) {
var channel models.Channel
if err := database.C.Where(models.Channel{
Alias: alias,
- }).First(&channel).Error; err != nil {
+ }).Preload("Account").First(&channel).Error; err != nil {
return channel, err
}
@@ -67,7 +68,7 @@ func GetAvailableChannel(id uint, user models.Account) (models.Channel, models.C
func ListChannel() ([]models.Channel, error) {
var channels []models.Channel
- if err := database.C.Find(&channels).Error; err != nil {
+ if err := database.C.Preload("Account").Find(&channels).Error; err != nil {
return channels, err
}