summaryrefslogtreecommitdiff
path: root/adapters/messaging/db.go
blob: 4cad3e233f14bab1ba5ee68fe9233a75519949f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package messaging

import (
	"database/sql"
	"log"
	"time"

	"git.simponic.xyz/simponic/phoneof/database"
)

func PersistMessageContinuation(dbConn *sql.DB, frenId string, messageId string, sentAt time.Time, frenSent bool) Continuation {
	return func(message Message) ContinuationChain {
		log.Printf("persisting message %v %s %s %s %v", message, frenId, messageId, sentAt, frenSent)
		return func(success Continuation, failure Continuation) ContinuationChain {
			_, err := database.SaveMessage(dbConn, &database.Message{
				Id:       messageId,
				FrenId:   frenId,
				Message:  message.Message,
				Time:     sentAt,
				FrenSent: frenSent,
			})
			if err != nil {
				log.Printf("err when saving message %s", err)
				return failure(message)
			}
			return success(message)
		}
	}
}