diff options
| author | Teddy Wing | 2017-08-10 23:38:50 +0200 | 
|---|---|---|
| committer | Teddy Wing | 2017-08-10 23:50:26 +0200 | 
| commit | 465f32c216bd9a9bd695f0a2f0f3a08369c51e9a (patch) | |
| tree | a6dc3a96f5cd84bc383f111111c0df52156f842b /src/Plugin | |
| parent | a13026cbdf42ebc159b202588d10dffba47c1c1b (diff) | |
| download | sorbot-465f32c216bd9a9bd695f0a2f0f3a08369c51e9a.tar.bz2 | |
Try to set up error handling for GitHub Commit plugin
This doesn't really work, but I wanted to hold onto this step. I've been
reading about error handling, notably this article:
http://www.randomhacks.net/2007/03/10/haskell-8-ways-to-report-errors/
I kind of like the idea of just using `fail`, and being able to have
that set up some polymorphism to handle `Maybe`, `Either`, and `IO`
situations, but today read some literature that discouraged using fail,
since not all monads implement it.
Anyway, this code doesn't print out the error string like I intended it
to, so I guess I'll have to use `Either` instead.
Diffstat (limited to 'src/Plugin')
| -rw-r--r-- | src/Plugin/GitHubCommit.hs | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/src/Plugin/GitHubCommit.hs b/src/Plugin/GitHubCommit.hs index cac74a4..8c11a12 100644 --- a/src/Plugin/GitHubCommit.hs +++ b/src/Plugin/GitHubCommit.hs @@ -24,12 +24,15 @@ gitHubCommitAction message dbConn = do          \ LIMIT 1"          (Only (M.channel message))          :: IO [RepoUrlRow] -    return $ response rs +    -- return $ response rs +    respond rs    where -    response []     = "" -    response ((RepoUrlRow r):rs) = -        r ++ "/commits/" ++ M.text message =~ matchRegex gitHubCommit +    respond []     = fail "I couldn't find a repo URL for this channel. \ +        \ Try `git remote set origin REPO_URL`" +    respond ((RepoUrlRow r):rs) = +        return r ++ "/commits/" ++ M.text message =~ matchRegex gitHubCommit  -- TODO: Make an Either type for plugins to return errors +-- if empty query result, return an empty error, otherwise return the string  type Id = Int | 
