mail based rss feed aggregator
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

actually persist emails having been sent

ollie bc77cffd 8e44b442

+22 -1
+22 -1
src/eater/sender.gleam
··· 234 234 type FeedUpdateError { 235 235 FailedToCheckSentStatus(sqlight.Error) 236 236 FailedToSendEmail(gsmtp.Error) 237 + FailedToPersistSending(sqlight.Error) 237 238 } 238 239 239 240 fn handle_feed_update(state: State, update: rss.FeedUpdate) { ··· 248 249 249 250 use <- bool.guard(when: user_has_previously_received_item, return: Ok(Nil)) 250 251 251 - send_email(state, update) |> result.map_error(FailedToSendEmail) 252 + use _ <- result.try( 253 + send_email(state, update) |> result.map_error(FailedToSendEmail), 254 + ) 255 + 256 + log(logging.Info, "Sent " <> update.new.link <> " to " <> state.user.email) 257 + 258 + use _ <- result.try( 259 + database.update_was_sent_to_user(update, state.user, state.database) 260 + |> result.map_error(FailedToPersistSending), 261 + ) 262 + 263 + log( 264 + logging.Info, 265 + "Persisted sending of " 266 + <> update.new.link 267 + <> " to " 268 + <> state.user.email 269 + <> " to database", 270 + ) 271 + 272 + Ok(Nil) 252 273 } 253 274 254 275 fn send_email(state: State, update: rss.FeedUpdate) -> Result(Nil, gsmtp.Error) {