Files
taro-bot/app/repositories/channel.go
Björn Benouarets fc8238759a init: Initial commit
2026-01-20 06:53:05 +01:00

59 lines
1.6 KiB
Go

package repositories
import (
"git.secnex.io/secnex/masterlog"
"git.secnex.io/secnex/taro-bot/database"
"git.secnex.io/secnex/taro-bot/models"
"github.com/google/uuid"
)
func CreateChannel(name, tenantId, externalId string) error {
channel := &models.Channel{
Name: name,
TenantID: uuid.MustParse(tenantId),
ExternalID: externalId,
}
return database.DB.Create(channel).Error
}
func UpsertChannel(name, tenantId, externalId string) (*models.Channel, error) {
masterlog.Debug("Upserting channel", map[string]interface{}{"name": name, "tenantId": tenantId, "externalId": externalId})
channel := &models.Channel{}
tenantUUID := uuid.MustParse(tenantId)
masterlog.Debug("Upserting channel", map[string]interface{}{"name": name, "tenantId": tenantUUID, "externalId": externalId})
err := database.DB.
Where("external_id = ?", externalId).
FirstOrCreate(&channel, models.Channel{
Name: name,
TenantID: tenantUUID,
ExternalID: externalId,
}).Error
if err != nil {
return nil, err
}
return channel, nil
}
func GetChannelByID(id string) (*models.Channel, error) {
var channel models.Channel
if err := database.DB.Where("id = ?", id).First(&channel).Error; err != nil {
return nil, err
}
return &channel, nil
}
func GetChannelByExternalID(id string) (*models.Channel, error) {
var channel models.Channel
if err := database.DB.Where("external_id = ?", id).First(&channel).Error; err != nil {
return nil, err
}
return &channel, nil
}
func DeleteTeamByExternalID(id string) error {
return database.DB.Where("external_id = ?", id).Delete(&models.Channel{}).Error
}