-- Copyright © 2012 Frank S. Thomas -- All rights reserved. -- -- Use of this source code is governed by a BSD-style license that -- can be found in the LICENSE file. -- | Ohloh API Reference: module Web.Ohloh.Kudo ( Kudo(..), xpKudo ) where import Text.XML.HXT.Arrow.Pickle import Web.Ohloh.Common -- | 'Kudo' is a simple gesture of thanks, praise, or endorsement from an -- 'Web.Ohloh.Account.Account' to another person. data Kudo = Kudo { kudoCreatedAt :: String, kudoSenderAccountId :: String, kudoSenderAccountName :: String, kudoReceiverAccountId :: Maybe String, kudoReceiverAccountName :: Maybe String, kudoProjectId :: Maybe String, kudoProjectName :: Maybe String, kudoContributorId :: Maybe String, kudoContributorName :: Maybe String } deriving (Eq, Read, Show) instance XmlPickler Kudo where xpickle = xpKudo instance ReadXmlString Kudo instance ShowXmlString Kudo xpKudo :: PU Kudo xpKudo = xpElem "kudo" $ xpWrap (uncurry9 Kudo, \(Kudo ca sai san rai ran pi pn ci cn) -> (ca, sai, san, rai, ran, pi, pn, ci, cn)) $ xp9Tuple (xpElem "created_at" xpText0) (xpElem "sender_account_id" xpText0) (xpElem "sender_account_name" xpText0) (xpOption (xpElem "receiver_account_id" xpText0)) (xpOption (xpElem "receiver_account_name" xpText0)) (xpOption (xpElem "project_id" xpText0)) (xpOption (xpElem "project_name" xpText0)) (xpOption (xpElem "contributor_id" xpText0)) (xpOption (xpElem "contributor_name" xpText0))