server/dao/Factory.go

79 lines
1.4 KiB
Go

package dao
import (
"git.tek.govt.hu/dowerx/chat/server/dao/postgres"
"git.tek.govt.hu/dowerx/chat/server/dao/valkey"
"git.tek.govt.hu/dowerx/chat/server/util"
)
var userDAO IUserDAO
var channelDAO IChannelDAO
var sessionDAO ISessionDAO
var messageDAO IMessageDAO
var notifcationDAO INotificationDAO
func GetUserDAO() (IUserDAO, *util.ChatError) {
if userDAO == nil {
dao, err := postgres.MakeUserDAO()
if err != nil {
return userDAO, err
}
userDAO = dao
}
return userDAO, nil
}
func GetChannelDAO() (IChannelDAO, *util.ChatError) {
if channelDAO == nil {
dao, err := postgres.MakeChannelDAO()
if err != nil {
return channelDAO, err
}
channelDAO = dao
}
return channelDAO, nil
}
func GetMessageDAO() (IMessageDAO, *util.ChatError) {
if messageDAO == nil {
dao, err := postgres.MakeMessageDAO()
if err != nil {
return messageDAO, err
}
messageDAO = dao
}
return messageDAO, nil
}
func GetSessionDAO() (ISessionDAO, *util.ChatError) {
if sessionDAO == nil {
dao, err := valkey.MakeSessionDAO()
if err != nil {
return sessionDAO, err
}
sessionDAO = dao
}
return sessionDAO, nil
}
func GetNotificationDAO() (INotificationDAO, *util.ChatError) {
if notifcationDAO == nil {
dao, err := valkey.MakeNotificationDAO()
if err != nil {
return notifcationDAO, err
}
notifcationDAO = dao
}
return notifcationDAO, nil
}