nidus-sync/platform/note.go

53 lines
1.7 KiB
Go
Raw Normal View History

package platform
import (
"context"
"fmt"
2026-03-19 21:25:24 +00:00
"strconv"
"github.com/Gleipnir-Technology/nidus-sync/db"
"github.com/Gleipnir-Technology/nidus-sync/db/models"
2026-03-19 21:25:24 +00:00
"github.com/Gleipnir-Technology/nidus-sync/platform/event"
//"github.com/google/uuid"
//"github.com/rs/zerolog/log"
)
func NoteAudioCreate(ctx context.Context, user User, setter models.NoteAudioSetter) error {
2026-03-19 21:25:24 +00:00
txn, err := db.PGInstance.BobDB.BeginTx(ctx, nil)
if err != nil {
return fmt.Errorf("create txn: %w", err)
}
defer txn.Rollback(ctx)
note_audio, err := models.NoteAudios.Insert(&setter).One(ctx, txn)
if err != nil {
// Just ignore this failure, it means we already have this content
if err.Error() != "insertOrganizationNoteAudios0: ERROR: duplicate key value violates unique constraint \"note_audio_pkey\" (SQLSTATE 23505)" {
return fmt.Errorf("create note_audio: %w", err)
}
}
event.Created(event.TypeNoteAudio, user.Organization.ID, strconv.Itoa(int(note_audio.ID)))
2026-03-19 21:25:24 +00:00
txn.Commit(ctx)
return nil
}
2026-03-19 21:25:24 +00:00
func NoteImageCreate(ctx context.Context, user User, setter models.NoteImageSetter) error {
2026-03-19 21:25:24 +00:00
txn, err := db.PGInstance.BobDB.BeginTx(ctx, nil)
if err != nil {
return fmt.Errorf("create txn: %w", err)
}
2026-03-19 21:25:24 +00:00
defer txn.Rollback(ctx)
note_image, err := models.NoteImages.Insert(&setter).One(ctx, db.PGInstance.BobDB)
if err != nil {
// Just ignore this failure, it means we already have this content
if err.Error() != "insertOrganizationNoteImages0: ERROR: duplicate key value violates unique constraint \"note_image_pkey\" (SQLSTATE 23505)" {
return fmt.Errorf("create note_image: %w", err)
}
}
event.Created(event.TypeNoteImage, user.Organization.ID, strconv.Itoa(int(note_image.ID)))
2026-03-19 21:25:24 +00:00
txn.Commit(ctx)
2026-03-19 21:25:24 +00:00
return err
}