refactor: rename database tables for notification entities to improve clarity and consistency
This commit is contained in:
@@ -13,7 +13,7 @@ func (s *Store) CreateChannel(ctx context.Context, ch *model.Channel) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("marshal channel config: %w", err)
|
return fmt.Errorf("marshal channel config: %w", err)
|
||||||
}
|
}
|
||||||
query := `INSERT INTO channel (name, type, config, status) VALUES (?, ?, ?, ?)`
|
query := `INSERT INTO notification_channel (name, type, config, status) VALUES (?, ?, ?, ?)`
|
||||||
result, err := s.DB.ExecContext(ctx, query, ch.Name, ch.Type, configJSON, ch.Status)
|
result, err := s.DB.ExecContext(ctx, query, ch.Name, ch.Type, configJSON, ch.Status)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("create channel: %w", err)
|
return fmt.Errorf("create channel: %w", err)
|
||||||
@@ -26,7 +26,7 @@ func (s *Store) CreateChannel(ctx context.Context, ch *model.Channel) error {
|
|||||||
func (s *Store) GetChannel(ctx context.Context, id int) (*model.Channel, error) {
|
func (s *Store) GetChannel(ctx context.Context, id int) (*model.Channel, error) {
|
||||||
var ch model.Channel
|
var ch model.Channel
|
||||||
var configBytes []byte
|
var configBytes []byte
|
||||||
row := s.DB.QueryRowContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM channel WHERE id = ?`, id)
|
row := s.DB.QueryRowContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM notification_channel WHERE id = ?`, id)
|
||||||
if err := row.Scan(&ch.ID, &ch.Name, &ch.Type, &configBytes, &ch.Status, &ch.CreatedAt, &ch.UpdatedAt); err != nil {
|
if err := row.Scan(&ch.ID, &ch.Name, &ch.Type, &configBytes, &ch.Status, &ch.CreatedAt, &ch.UpdatedAt); err != nil {
|
||||||
return nil, fmt.Errorf("get channel %d: %w", id, err)
|
return nil, fmt.Errorf("get channel %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ func (s *Store) GetChannel(ctx context.Context, id int) (*model.Channel, error)
|
|||||||
func (s *Store) GetChannelByName(ctx context.Context, name string) (*model.Channel, error) {
|
func (s *Store) GetChannelByName(ctx context.Context, name string) (*model.Channel, error) {
|
||||||
var ch model.Channel
|
var ch model.Channel
|
||||||
var configBytes []byte
|
var configBytes []byte
|
||||||
row := s.DB.QueryRowContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM channel WHERE name = ?`, name)
|
row := s.DB.QueryRowContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM notification_channel WHERE name = ?`, name)
|
||||||
if err := row.Scan(&ch.ID, &ch.Name, &ch.Type, &configBytes, &ch.Status, &ch.CreatedAt, &ch.UpdatedAt); err != nil {
|
if err := row.Scan(&ch.ID, &ch.Name, &ch.Type, &configBytes, &ch.Status, &ch.CreatedAt, &ch.UpdatedAt); err != nil {
|
||||||
return nil, fmt.Errorf("get channel by name %s: %w", name, err)
|
return nil, fmt.Errorf("get channel by name %s: %w", name, err)
|
||||||
}
|
}
|
||||||
@@ -48,7 +48,7 @@ func (s *Store) GetChannelByName(ctx context.Context, name string) (*model.Chann
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) ListChannels(ctx context.Context) ([]model.Channel, error) {
|
func (s *Store) ListChannels(ctx context.Context) ([]model.Channel, error) {
|
||||||
rows, err := s.DB.QueryContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM channel ORDER BY id`)
|
rows, err := s.DB.QueryContext(ctx, `SELECT id, name, type, config, status, created_at, updated_at FROM notification_channel ORDER BY id`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list channels: %w", err)
|
return nil, fmt.Errorf("list channels: %w", err)
|
||||||
}
|
}
|
||||||
@@ -73,7 +73,7 @@ func (s *Store) UpdateChannel(ctx context.Context, id int, ch *model.Channel) er
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("marshal channel config: %w", err)
|
return fmt.Errorf("marshal channel config: %w", err)
|
||||||
}
|
}
|
||||||
query := `UPDATE channel SET name=?, type=?, config=?, status=? WHERE id=?`
|
query := `UPDATE notification_channel SET name=?, type=?, config=?, status=? WHERE id=?`
|
||||||
_, err = s.DB.ExecContext(ctx, query, ch.Name, ch.Type, configJSON, ch.Status, id)
|
_, err = s.DB.ExecContext(ctx, query, ch.Name, ch.Type, configJSON, ch.Status, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("update channel %d: %w", id, err)
|
return fmt.Errorf("update channel %d: %w", id, err)
|
||||||
@@ -82,7 +82,7 @@ func (s *Store) UpdateChannel(ctx context.Context, id int, ch *model.Channel) er
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) DeleteChannel(ctx context.Context, id int) error {
|
func (s *Store) DeleteChannel(ctx context.Context, id int) error {
|
||||||
_, err := s.DB.ExecContext(ctx, `DELETE FROM channel WHERE id = ?`, id)
|
_, err := s.DB.ExecContext(ctx, `DELETE FROM notification_channel WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("delete channel %d: %w", id, err)
|
return fmt.Errorf("delete channel %d: %w", id, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ type MessageLogFilter struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) CreateMessageLog(ctx context.Context, ml *model.MessageLog) error {
|
func (s *Store) CreateMessageLog(ctx context.Context, ml *model.MessageLog) error {
|
||||||
query := `INSERT INTO message_log (rule_id, channel_id, source, event, payload, content, status, retry_count) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
|
query := `INSERT INTO notification_message_log (rule_id, channel_id, source, event, payload, content, status, retry_count) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`
|
||||||
result, err := s.DB.ExecContext(ctx, query, ml.RuleID, ml.ChannelID, ml.Source, ml.Event, ml.Payload, ml.Content, ml.Status, ml.RetryCount)
|
result, err := s.DB.ExecContext(ctx, query, ml.RuleID, ml.ChannelID, ml.Source, ml.Event, ml.Payload, ml.Content, ml.Status, ml.RetryCount)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("create message_log: %w", err)
|
return fmt.Errorf("create message_log: %w", err)
|
||||||
@@ -27,7 +27,7 @@ func (s *Store) CreateMessageLog(ctx context.Context, ml *model.MessageLog) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpdateMessageLog(ctx context.Context, id int64, status string, response, errMsg *string) error {
|
func (s *Store) UpdateMessageLog(ctx context.Context, id int64, status string, response, errMsg *string) error {
|
||||||
query := `UPDATE message_log SET status=?, response=?, error_msg=? WHERE id=?`
|
query := `UPDATE notification_message_log SET status=?, response=?, error_msg=? WHERE id=?`
|
||||||
_, err := s.DB.ExecContext(ctx, query, status, response, errMsg, id)
|
_, err := s.DB.ExecContext(ctx, query, status, response, errMsg, id)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ func (s *Store) ListMessageLogs(ctx context.Context, filter MessageLogFilter) ([
|
|||||||
}
|
}
|
||||||
|
|
||||||
var count int
|
var count int
|
||||||
countQuery := "SELECT COUNT(*) FROM message_log " + where
|
countQuery := "SELECT COUNT(*) FROM notification_message_log " + where
|
||||||
if err := s.DB.GetContext(ctx, &count, countQuery, args...); err != nil {
|
if err := s.DB.GetContext(ctx, &count, countQuery, args...); err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
@@ -63,7 +63,7 @@ func (s *Store) ListMessageLogs(ctx context.Context, filter MessageLogFilter) ([
|
|||||||
offset := (filter.Page - 1) * filter.PageSize
|
offset := (filter.Page - 1) * filter.PageSize
|
||||||
|
|
||||||
var logs []model.MessageLog
|
var logs []model.MessageLog
|
||||||
query := "SELECT * FROM message_log " + where + " ORDER BY id DESC LIMIT ? OFFSET ?"
|
query := "SELECT * FROM notification_message_log " + where + " ORDER BY id DESC LIMIT ? OFFSET ?"
|
||||||
args = append(args, filter.PageSize, offset)
|
args = append(args, filter.PageSize, offset)
|
||||||
if err := s.DB.SelectContext(ctx, &logs, query, args...); err != nil {
|
if err := s.DB.SelectContext(ctx, &logs, query, args...); err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
|
|||||||
+12
-12
@@ -16,7 +16,7 @@ func (s *Store) CreateRule(ctx context.Context, r *model.Rule, channelIDs []int)
|
|||||||
}
|
}
|
||||||
defer tx.Rollback()
|
defer tx.Rollback()
|
||||||
|
|
||||||
query := `INSERT INTO rule (source_id, event, template_id, conditions, enabled) VALUES (?, ?, ?, ?, ?)`
|
query := `INSERT INTO notification_rule (source_id, event, template_id, conditions, enabled) VALUES (?, ?, ?, ?, ?)`
|
||||||
condsJSON, err := marshalJSON(r.Conditions)
|
condsJSON, err := marshalJSON(r.Conditions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("marshal conditions: %w", err)
|
return fmt.Errorf("marshal conditions: %w", err)
|
||||||
@@ -29,7 +29,7 @@ func (s *Store) CreateRule(ctx context.Context, r *model.Rule, channelIDs []int)
|
|||||||
r.ID = int(id)
|
r.ID = int(id)
|
||||||
|
|
||||||
for _, chID := range channelIDs {
|
for _, chID := range channelIDs {
|
||||||
_, err := tx.ExecContext(ctx, `INSERT INTO rule_channel (rule_id, channel_id, enabled) VALUES (?, ?, 1)`, r.ID, chID)
|
_, err := tx.ExecContext(ctx, `INSERT INTO notification_rule_channel (rule_id, channel_id, enabled) VALUES (?, ?, 1)`, r.ID, chID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("add rule_channel: %w", err)
|
return fmt.Errorf("add rule_channel: %w", err)
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,7 @@ func (s *Store) CreateRule(ctx context.Context, r *model.Rule, channelIDs []int)
|
|||||||
func (s *Store) GetRule(ctx context.Context, id int) (*model.Rule, error) {
|
func (s *Store) GetRule(ctx context.Context, id int) (*model.Rule, error) {
|
||||||
var r model.Rule
|
var r model.Rule
|
||||||
var condsBytes []byte
|
var condsBytes []byte
|
||||||
row := s.DB.QueryRowContext(ctx, `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM rule WHERE id = ?`, id)
|
row := s.DB.QueryRowContext(ctx, `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM notification_rule WHERE id = ?`, id)
|
||||||
if err := row.Scan(&r.ID, &r.SourceID, &r.Event, &r.TemplateID, &condsBytes, &r.Enabled, &r.CreatedAt, &r.UpdatedAt); err != nil {
|
if err := row.Scan(&r.ID, &r.SourceID, &r.Event, &r.TemplateID, &condsBytes, &r.Enabled, &r.CreatedAt, &r.UpdatedAt); err != nil {
|
||||||
return nil, fmt.Errorf("get rule %d: %w", id, err)
|
return nil, fmt.Errorf("get rule %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ func (s *Store) GetRule(ctx context.Context, id int) (*model.Rule, error) {
|
|||||||
func (s *Store) GetRuleBySourceEvent(ctx context.Context, sourceID int, event string) (*model.Rule, error) {
|
func (s *Store) GetRuleBySourceEvent(ctx context.Context, sourceID int, event string) (*model.Rule, error) {
|
||||||
var r model.Rule
|
var r model.Rule
|
||||||
var condsBytes []byte
|
var condsBytes []byte
|
||||||
query := `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM rule WHERE source_id = ? AND event = ? AND enabled = 1`
|
query := `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM notification_rule WHERE source_id = ? AND event = ? AND enabled = 1`
|
||||||
row := s.DB.QueryRowContext(ctx, query, sourceID, event)
|
row := s.DB.QueryRowContext(ctx, query, sourceID, event)
|
||||||
if err := row.Scan(&r.ID, &r.SourceID, &r.Event, &r.TemplateID, &condsBytes, &r.Enabled, &r.CreatedAt, &r.UpdatedAt); err != nil {
|
if err := row.Scan(&r.ID, &r.SourceID, &r.Event, &r.TemplateID, &condsBytes, &r.Enabled, &r.CreatedAt, &r.UpdatedAt); err != nil {
|
||||||
return nil, fmt.Errorf("get rule by source+event: %w", err)
|
return nil, fmt.Errorf("get rule by source+event: %w", err)
|
||||||
@@ -67,7 +67,7 @@ func (s *Store) GetRuleBySourceEvent(ctx context.Context, sourceID int, event st
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) ListRules(ctx context.Context) ([]model.Rule, error) {
|
func (s *Store) ListRules(ctx context.Context) ([]model.Rule, error) {
|
||||||
rows, err := s.DB.QueryContext(ctx, `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM rule ORDER BY id`)
|
rows, err := s.DB.QueryContext(ctx, `SELECT id, source_id, event, template_id, conditions, enabled, created_at, updated_at FROM notification_rule ORDER BY id`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list rules: %w", err)
|
return nil, fmt.Errorf("list rules: %w", err)
|
||||||
}
|
}
|
||||||
@@ -86,18 +86,18 @@ func (s *Store) UpdateRule(ctx context.Context, id int, r *model.Rule, channelID
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("marshal conditions: %w", err)
|
return fmt.Errorf("marshal conditions: %w", err)
|
||||||
}
|
}
|
||||||
_, err = tx.ExecContext(ctx, `UPDATE rule SET source_id=?, event=?, template_id=?, conditions=?, enabled=? WHERE id=?`,
|
_, err = tx.ExecContext(ctx, `UPDATE notification_rule SET source_id=?, event=?, template_id=?, conditions=?, enabled=? WHERE id=?`,
|
||||||
r.SourceID, r.Event, r.TemplateID, condsJSON, r.Enabled, id)
|
r.SourceID, r.Event, r.TemplateID, condsJSON, r.Enabled, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("update rule: %w", err)
|
return fmt.Errorf("update rule: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if channelIDs != nil {
|
if channelIDs != nil {
|
||||||
if _, err := tx.ExecContext(ctx, `DELETE FROM rule_channel WHERE rule_id = ?`, id); err != nil {
|
if _, err := tx.ExecContext(ctx, `DELETE FROM notification_rule_channel WHERE rule_id = ?`, id); err != nil {
|
||||||
return fmt.Errorf("delete rule channels: %w", err)
|
return fmt.Errorf("delete rule channels: %w", err)
|
||||||
}
|
}
|
||||||
for _, chID := range channelIDs {
|
for _, chID := range channelIDs {
|
||||||
_, err := tx.ExecContext(ctx, `INSERT INTO rule_channel (rule_id, channel_id, enabled) VALUES (?, ?, 1)`, id, chID)
|
_, err := tx.ExecContext(ctx, `INSERT INTO notification_rule_channel (rule_id, channel_id, enabled) VALUES (?, ?, 1)`, id, chID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("add rule_channel: %w", err)
|
return fmt.Errorf("add rule_channel: %w", err)
|
||||||
}
|
}
|
||||||
@@ -107,7 +107,7 @@ func (s *Store) UpdateRule(ctx context.Context, id int, r *model.Rule, channelID
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) DeleteRule(ctx context.Context, id int) error {
|
func (s *Store) DeleteRule(ctx context.Context, id int) error {
|
||||||
_, err := s.DB.ExecContext(ctx, `DELETE FROM rule WHERE id = ?`, id)
|
_, err := s.DB.ExecContext(ctx, `DELETE FROM notification_rule WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("delete rule %d: %w", id, err)
|
return fmt.Errorf("delete rule %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -119,7 +119,7 @@ func (s *Store) SetRuleEnabled(ctx context.Context, id int, enabled bool) error
|
|||||||
if enabled {
|
if enabled {
|
||||||
v = 1
|
v = 1
|
||||||
}
|
}
|
||||||
_, err := s.DB.ExecContext(ctx, `UPDATE rule SET enabled = ? WHERE id = ?`, v, id)
|
_, err := s.DB.ExecContext(ctx, `UPDATE notification_rule SET enabled = ? WHERE id = ?`, v, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("set rule enabled %d: %w", id, err)
|
return fmt.Errorf("set rule enabled %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ func (s *Store) SetRuleEnabled(ctx context.Context, id int, enabled bool) error
|
|||||||
|
|
||||||
func (s *Store) GetRuleChannels(ctx context.Context, ruleID int) ([]model.RuleChannel, error) {
|
func (s *Store) GetRuleChannels(ctx context.Context, ruleID int) ([]model.RuleChannel, error) {
|
||||||
var rcs []model.RuleChannel
|
var rcs []model.RuleChannel
|
||||||
err := s.DB.SelectContext(ctx, &rcs, `SELECT id, rule_id, channel_id, enabled FROM rule_channel WHERE rule_id = ? AND enabled = 1`, ruleID)
|
err := s.DB.SelectContext(ctx, &rcs, `SELECT id, rule_id, channel_id, enabled FROM notification_rule_channel WHERE rule_id = ? AND enabled = 1`, ruleID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get rule channels: %w", err)
|
return nil, fmt.Errorf("get rule channels: %w", err)
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ func (s *Store) SetRuleChannelEnabled(ctx context.Context, ruleID, channelID int
|
|||||||
if enabled {
|
if enabled {
|
||||||
v = 1
|
v = 1
|
||||||
}
|
}
|
||||||
_, err := s.DB.ExecContext(ctx, `UPDATE rule_channel SET enabled = ? WHERE rule_id = ? AND channel_id = ?`, v, ruleID, channelID)
|
_, err := s.DB.ExecContext(ctx, `UPDATE notification_rule_channel SET enabled = ? WHERE rule_id = ? AND channel_id = ?`, v, ruleID, channelID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("set rule channel enabled %d/%d: %w", ruleID, channelID, err)
|
return fmt.Errorf("set rule channel enabled %d/%d: %w", ruleID, channelID, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func generateAPIKey() string {
|
|||||||
|
|
||||||
func (s *Store) CreateSource(ctx context.Context, src *model.Source) error {
|
func (s *Store) CreateSource(ctx context.Context, src *model.Source) error {
|
||||||
src.APIKey = generateAPIKey()
|
src.APIKey = generateAPIKey()
|
||||||
query := `INSERT INTO source (name, api_key, parse_mode, parse_pattern, status) VALUES (?, ?, ?, ?, ?)`
|
query := `INSERT INTO notification_source (name, api_key, parse_mode, parse_pattern, status) VALUES (?, ?, ?, ?, ?)`
|
||||||
result, err := s.DB.ExecContext(ctx, query, src.Name, src.APIKey, src.ParseMode, src.ParsePattern, src.Status)
|
result, err := s.DB.ExecContext(ctx, query, src.Name, src.APIKey, src.ParseMode, src.ParsePattern, src.Status)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("create source: %w", err)
|
return fmt.Errorf("create source: %w", err)
|
||||||
@@ -29,7 +29,7 @@ func (s *Store) CreateSource(ctx context.Context, src *model.Source) error {
|
|||||||
|
|
||||||
func (s *Store) GetSource(ctx context.Context, id int) (*model.Source, error) {
|
func (s *Store) GetSource(ctx context.Context, id int) (*model.Source, error) {
|
||||||
var src model.Source
|
var src model.Source
|
||||||
err := s.DB.GetContext(ctx, &src, `SELECT * FROM source WHERE id = ?`, id)
|
err := s.DB.GetContext(ctx, &src, `SELECT * FROM notification_source WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get source %d: %w", id, err)
|
return nil, fmt.Errorf("get source %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ func (s *Store) GetSource(ctx context.Context, id int) (*model.Source, error) {
|
|||||||
|
|
||||||
func (s *Store) GetSourceByAPIKey(ctx context.Context, apiKey string) (*model.Source, error) {
|
func (s *Store) GetSourceByAPIKey(ctx context.Context, apiKey string) (*model.Source, error) {
|
||||||
var src model.Source
|
var src model.Source
|
||||||
err := s.DB.GetContext(ctx, &src, `SELECT * FROM source WHERE api_key = ? AND status = 1`, apiKey)
|
err := s.DB.GetContext(ctx, &src, `SELECT * FROM notification_source WHERE api_key = ? AND status = 1`, apiKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get source by api_key: %w", err)
|
return nil, fmt.Errorf("get source by api_key: %w", err)
|
||||||
}
|
}
|
||||||
@@ -47,7 +47,7 @@ func (s *Store) GetSourceByAPIKey(ctx context.Context, apiKey string) (*model.So
|
|||||||
|
|
||||||
func (s *Store) GetSourceByName(ctx context.Context, name string) (*model.Source, error) {
|
func (s *Store) GetSourceByName(ctx context.Context, name string) (*model.Source, error) {
|
||||||
var src model.Source
|
var src model.Source
|
||||||
err := s.DB.GetContext(ctx, &src, `SELECT * FROM source WHERE name = ?`, name)
|
err := s.DB.GetContext(ctx, &src, `SELECT * FROM notification_source WHERE name = ?`, name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get source by name %s: %w", name, err)
|
return nil, fmt.Errorf("get source by name %s: %w", name, err)
|
||||||
}
|
}
|
||||||
@@ -56,7 +56,7 @@ func (s *Store) GetSourceByName(ctx context.Context, name string) (*model.Source
|
|||||||
|
|
||||||
func (s *Store) ListSources(ctx context.Context) ([]model.Source, error) {
|
func (s *Store) ListSources(ctx context.Context) ([]model.Source, error) {
|
||||||
var sources []model.Source
|
var sources []model.Source
|
||||||
err := s.DB.SelectContext(ctx, &sources, `SELECT * FROM source ORDER BY id`)
|
err := s.DB.SelectContext(ctx, &sources, `SELECT * FROM notification_source ORDER BY id`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list sources: %w", err)
|
return nil, fmt.Errorf("list sources: %w", err)
|
||||||
}
|
}
|
||||||
@@ -64,7 +64,7 @@ func (s *Store) ListSources(ctx context.Context) ([]model.Source, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpdateSource(ctx context.Context, id int, src *model.Source) error {
|
func (s *Store) UpdateSource(ctx context.Context, id int, src *model.Source) error {
|
||||||
query := `UPDATE source SET name=?, parse_mode=?, parse_pattern=?, status=? WHERE id=?`
|
query := `UPDATE notification_source SET name=?, parse_mode=?, parse_pattern=?, status=? WHERE id=?`
|
||||||
_, err := s.DB.ExecContext(ctx, query, src.Name, src.ParseMode, src.ParsePattern, src.Status, id)
|
_, err := s.DB.ExecContext(ctx, query, src.Name, src.ParseMode, src.ParsePattern, src.Status, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("update source %d: %w", id, err)
|
return fmt.Errorf("update source %d: %w", id, err)
|
||||||
@@ -73,7 +73,7 @@ func (s *Store) UpdateSource(ctx context.Context, id int, src *model.Source) err
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) DeleteSource(ctx context.Context, id int) error {
|
func (s *Store) DeleteSource(ctx context.Context, id int) error {
|
||||||
_, err := s.DB.ExecContext(ctx, `DELETE FROM source WHERE id = ?`, id)
|
_, err := s.DB.ExecContext(ctx, `DELETE FROM notification_source WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("delete source %d: %w", id, err)
|
return fmt.Errorf("delete source %d: %w", id, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (s *Store) CreateTemplate(ctx context.Context, t *model.Template) error {
|
func (s *Store) CreateTemplate(ctx context.Context, t *model.Template) error {
|
||||||
query := `INSERT INTO template (name, content) VALUES (?, ?)`
|
query := `INSERT INTO notification_template (name, content) VALUES (?, ?)`
|
||||||
result, err := s.DB.ExecContext(ctx, query, t.Name, t.Content)
|
result, err := s.DB.ExecContext(ctx, query, t.Name, t.Content)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("create template: %w", err)
|
return fmt.Errorf("create template: %w", err)
|
||||||
@@ -20,7 +20,7 @@ func (s *Store) CreateTemplate(ctx context.Context, t *model.Template) error {
|
|||||||
|
|
||||||
func (s *Store) GetTemplate(ctx context.Context, id int) (*model.Template, error) {
|
func (s *Store) GetTemplate(ctx context.Context, id int) (*model.Template, error) {
|
||||||
var t model.Template
|
var t model.Template
|
||||||
err := s.DB.GetContext(ctx, &t, `SELECT * FROM template WHERE id = ?`, id)
|
err := s.DB.GetContext(ctx, &t, `SELECT * FROM notification_template WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get template %d: %w", id, err)
|
return nil, fmt.Errorf("get template %d: %w", id, err)
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ func (s *Store) GetTemplate(ctx context.Context, id int) (*model.Template, error
|
|||||||
|
|
||||||
func (s *Store) GetTemplateByName(ctx context.Context, name string) (*model.Template, error) {
|
func (s *Store) GetTemplateByName(ctx context.Context, name string) (*model.Template, error) {
|
||||||
var t model.Template
|
var t model.Template
|
||||||
err := s.DB.GetContext(ctx, &t, `SELECT * FROM template WHERE name = ?`, name)
|
err := s.DB.GetContext(ctx, &t, `SELECT * FROM notification_template WHERE name = ?`, name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("get template by name %s: %w", name, err)
|
return nil, fmt.Errorf("get template by name %s: %w", name, err)
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ func (s *Store) GetTemplateByName(ctx context.Context, name string) (*model.Temp
|
|||||||
|
|
||||||
func (s *Store) ListTemplates(ctx context.Context) ([]model.Template, error) {
|
func (s *Store) ListTemplates(ctx context.Context) ([]model.Template, error) {
|
||||||
var templates []model.Template
|
var templates []model.Template
|
||||||
err := s.DB.SelectContext(ctx, &templates, `SELECT * FROM template ORDER BY id`)
|
err := s.DB.SelectContext(ctx, &templates, `SELECT * FROM notification_template ORDER BY id`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("list templates: %w", err)
|
return nil, fmt.Errorf("list templates: %w", err)
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ func (s *Store) ListTemplates(ctx context.Context) ([]model.Template, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) UpdateTemplate(ctx context.Context, id int, t *model.Template) error {
|
func (s *Store) UpdateTemplate(ctx context.Context, id int, t *model.Template) error {
|
||||||
query := `UPDATE template SET name=?, content=? WHERE id=?`
|
query := `UPDATE notification_template SET name=?, content=? WHERE id=?`
|
||||||
_, err := s.DB.ExecContext(ctx, query, t.Name, t.Content, id)
|
_, err := s.DB.ExecContext(ctx, query, t.Name, t.Content, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("update template %d: %w", id, err)
|
return fmt.Errorf("update template %d: %w", id, err)
|
||||||
@@ -55,7 +55,7 @@ func (s *Store) UpdateTemplate(ctx context.Context, id int, t *model.Template) e
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Store) DeleteTemplate(ctx context.Context, id int) error {
|
func (s *Store) DeleteTemplate(ctx context.Context, id int) error {
|
||||||
_, err := s.DB.ExecContext(ctx, `DELETE FROM template WHERE id = ?`, id)
|
_, err := s.DB.ExecContext(ctx, `DELETE FROM notification_template WHERE id = ?`, id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("delete template %d: %w", id, err)
|
return fmt.Errorf("delete template %d: %w", id, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
DROP TABLE IF EXISTS message_log;
|
DROP TABLE IF EXISTS notification_message_log;
|
||||||
DROP TABLE IF EXISTS rule_channel;
|
DROP TABLE IF EXISTS notification_rule_channel;
|
||||||
DROP TABLE IF EXISTS rule;
|
DROP TABLE IF EXISTS notification_rule;
|
||||||
DROP TABLE IF EXISTS channel;
|
DROP TABLE IF EXISTS notification_channel;
|
||||||
DROP TABLE IF EXISTS template;
|
DROP TABLE IF EXISTS notification_template;
|
||||||
DROP TABLE IF EXISTS source;
|
DROP TABLE IF EXISTS notification_source;
|
||||||
|
|||||||
+10
-10
@@ -1,4 +1,4 @@
|
|||||||
CREATE TABLE source (
|
CREATE TABLE notification_source (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
name VARCHAR(64) NOT NULL,
|
name VARCHAR(64) NOT NULL,
|
||||||
api_key VARCHAR(128) NOT NULL,
|
api_key VARCHAR(128) NOT NULL,
|
||||||
@@ -11,7 +11,7 @@ CREATE TABLE source (
|
|||||||
UNIQUE KEY uk_api_key (api_key)
|
UNIQUE KEY uk_api_key (api_key)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE template (
|
CREATE TABLE notification_template (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
name VARCHAR(64) NOT NULL,
|
name VARCHAR(64) NOT NULL,
|
||||||
content TEXT NOT NULL,
|
content TEXT NOT NULL,
|
||||||
@@ -20,7 +20,7 @@ CREATE TABLE template (
|
|||||||
UNIQUE KEY uk_name (name)
|
UNIQUE KEY uk_name (name)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE channel (
|
CREATE TABLE notification_channel (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
name VARCHAR(32) NOT NULL,
|
name VARCHAR(32) NOT NULL,
|
||||||
type VARCHAR(32) NOT NULL,
|
type VARCHAR(32) NOT NULL,
|
||||||
@@ -31,7 +31,7 @@ CREATE TABLE channel (
|
|||||||
UNIQUE KEY uk_name (name)
|
UNIQUE KEY uk_name (name)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE rule (
|
CREATE TABLE notification_rule (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
source_id INT NOT NULL,
|
source_id INT NOT NULL,
|
||||||
event VARCHAR(64) NOT NULL,
|
event VARCHAR(64) NOT NULL,
|
||||||
@@ -41,21 +41,21 @@ CREATE TABLE rule (
|
|||||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
UNIQUE KEY uk_source_event (source_id, event),
|
UNIQUE KEY uk_source_event (source_id, event),
|
||||||
FOREIGN KEY (source_id) REFERENCES source(id),
|
FOREIGN KEY (source_id) REFERENCES notification_source(id),
|
||||||
FOREIGN KEY (template_id) REFERENCES template(id)
|
FOREIGN KEY (template_id) REFERENCES notification_template(id)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE rule_channel (
|
CREATE TABLE notification_rule_channel (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
rule_id INT NOT NULL,
|
rule_id INT NOT NULL,
|
||||||
channel_id INT NOT NULL,
|
channel_id INT NOT NULL,
|
||||||
enabled TINYINT NOT NULL DEFAULT 1,
|
enabled TINYINT NOT NULL DEFAULT 1,
|
||||||
UNIQUE KEY uk_rule_channel (rule_id, channel_id),
|
UNIQUE KEY uk_rule_channel (rule_id, channel_id),
|
||||||
FOREIGN KEY (rule_id) REFERENCES rule(id) ON DELETE CASCADE,
|
FOREIGN KEY (rule_id) REFERENCES notification_rule(id) ON DELETE CASCADE,
|
||||||
FOREIGN KEY (channel_id) REFERENCES channel(id)
|
FOREIGN KEY (channel_id) REFERENCES notification_channel(id)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE message_log (
|
CREATE TABLE notification_message_log (
|
||||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||||
rule_id INT NOT NULL,
|
rule_id INT NOT NULL,
|
||||||
channel_id INT NOT NULL,
|
channel_id INT NOT NULL,
|
||||||
|
|||||||
Reference in New Issue
Block a user