diff options
Diffstat (limited to 'adapters/messaging/db.go')
-rw-r--r-- | adapters/messaging/db.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/adapters/messaging/db.go b/adapters/messaging/db.go new file mode 100644 index 0000000..4cad3e2 --- /dev/null +++ b/adapters/messaging/db.go @@ -0,0 +1,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) + } + } +} |