server/dao/Factory.go

121 lines
2.1 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
var roleDAO IRoleDAO
var roleBindingDAO IRoleBindingDAO
var rightDAO IRightDAO
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 GetRoleDAO() (IRoleDAO, *util.ChatError) {
if roleDAO == nil {
dao, err := postgres.MakeRoleDAO()
if err != nil {
return roleDAO, err
}
roleDAO = dao
}
return roleDAO, nil
}
func GetRoleBindingDAO() (IRoleBindingDAO, *util.ChatError) {
if roleBindingDAO == nil {
dao, err := postgres.MakeRoleBindingDAO()
if err != nil {
return roleBindingDAO, err
}
roleBindingDAO = dao
}
return roleBindingDAO, nil
}
func GetRightDAO() (IRightDAO, *util.ChatError) {
if rightDAO == nil {
dao, err := postgres.MakeRightDAO()
if err != nil {
return rightDAO, err
}
rightDAO = dao
}
return rightDAO, 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
}