{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE OverloadedStrings, DeriveDataTypeable, RankNTypes, CPP, FlexibleInstances #-} module Web.Twitter.Types.Lens ( TT.DateString , TT.UserId , TT.Friends , TT.URIString , TT.UserName , TT.StatusId , TT.LanguageCode , TT.StreamingAPI(..) , TT.Status , TT.SearchResult , TT.SearchStatus , TT.SearchMetadata , TT.RetweetedStatus , TT.DirectMessage , TT.EventTarget(..) , TT.Event , TT.Delete , TT.User , TT.List , TT.Entities , TT.EntityIndices , TT.Entity , TT.HashTagEntity , TT.UserEntity , TT.URLEntity , TT.MediaEntity , TT.MediaSize , TT.Coordinates , TT.Place , TT.BoundingBox , statusContributors , statusCoordinates , statusCreatedAt , statusCurrentUserRetweet , statusEntities , statusExtendedEntities , statusFavoriteCount , statusFavorited , statusFilterLevel , statusId , statusInReplyToScreenName , statusInReplyToStatusId , statusInReplyToUserId , statusLang , statusPlace , statusPossiblySensitive , statusScopes , statusRetweetCount , statusRetweeted , statusRetweetedStatus , statusSource , statusText , statusTruncated , statusUser , statusWithheldCopyright , statusWithheldInCountries , statusWithheldScope , searchResultStatuses , searchResultSearchMetadata , searchStatusCreatedAt , searchStatusId , searchStatusText , searchStatusSource , searchStatusUser , searchStatusCoordinates , searchMetadataMaxId , searchMetadataSinceId , searchMetadataRefreshURL , searchMetadataNextResults , searchMetadataCount , searchMetadataCompletedIn , searchMetadataSinceIdStr , searchMetadataQuery , searchMetadataMaxIdStr , rsCreatedAt , rsId , rsText , rsSource , rsTruncated , rsEntities , rsUser , rsRetweetedStatus , rsCoordinates , dmCreatedAt , dmSenderScreenName , dmSender , dmText , dmRecipientScreeName , dmId , dmRecipient , dmRecipientId , dmSenderId , dmCoordinates , evCreatedAt , evTargetObject , evEvent , evTarget , evSource , delId , delUserId , userContributorsEnabled , userCreatedAt , userDefaultProfile , userDefaultProfileImage , userDescription , userFavoritesCount , userFollowRequestSent , userFollowing , userFollowersCount , userFriendsCount , userGeoEnabled , userId , userIsTranslator , userLang , userListedCount , userLocation , userName , userNotifications , userProfileBackgroundColor , userProfileBackgroundImageURL , userProfileBackgroundImageURLHttps , userProfileBackgroundTile , userProfileBannerURL , userProfileImageURL , userProfileImageURLHttps , userProfileLinkColor , userProfileSidebarBorderColor , userProfileSidebarFillColor , userProfileTextColor , userProfileUseBackgroundImage , userProtected , userScreenName , userShowAllInlineMedia , userStatusesCount , userTimeZone , userURL , userUtcOffset , userVerified , userWithheldInCountries , userWithheldScope , listId , listName , listFullName , listMemberCount , listSubscriberCount , listMode , listUser , hashTagText , userEntityUserId , userEntityUserName , userEntityUserScreenName , ueURL , ueExpanded , ueDisplay , meType , meId , meSizes , meMediaURL , meMediaURLHttps , meURL , msWidth , msHeight , msResize , coordinates , coordinatesType , placeAttributes , placeBoundingBox , placeCountry , placeCountryCode , placeFullName , placeId , placeName , placeType , placeURL , boundingBoxCoordinates , boundingBoxType , enHashTags , enUserMentions , enURLs , enMedia , entityBody , entityIndices , AsStatus(..) , AsUser(..) ) where import Web.Twitter.Types.Lens.Types import qualified Web.Twitter.Types as TT import Data.Text (Text) import Web.Twitter.Types.Lens.TH makeLenses ''TT.Status makeLenses ''TT.SearchResult makeLenses ''TT.SearchStatus makeLenses ''TT.SearchMetadata makeLenses ''TT.RetweetedStatus makeLenses ''TT.DirectMessage makeLenses ''TT.Event makeLenses ''TT.Delete makeLenses ''TT.User makeLenses ''TT.List makeLenses ''TT.HashTagEntity makeLenses ''TT.UserEntity makeLenses ''TT.URLEntity makeLenses ''TT.MediaEntity makeLenses ''TT.MediaSize makeLenses ''TT.Coordinates makeLenses ''TT.Place makeLenses ''TT.BoundingBox makeLenses ''TT.Entities makeLenses ''TT.Entity class AsStatus s where status_id :: Lens' s TT.StatusId text :: Lens' s Text user :: Lens' s TT.User created_at :: Lens' s TT.DateString geolocation :: Lens' s (Maybe TT.Coordinates) instance AsStatus TT.Status where status_id = statusId text = statusText user = statusUser created_at = statusCreatedAt geolocation = statusCoordinates instance AsStatus TT.SearchStatus where status_id = searchStatusId text = searchStatusText user = searchStatusUser created_at = searchStatusCreatedAt geolocation = searchStatusCoordinates instance AsStatus TT.RetweetedStatus where status_id = rsId text = rsText user = rsUser created_at = rsCreatedAt geolocation = rsCoordinates instance AsStatus TT.DirectMessage where status_id = dmId text = dmText user = dmSender created_at = dmCreatedAt geolocation = dmCoordinates class AsUser u where user_id :: Lens' u TT.UserId name :: Lens' u TT.UserName screen_name :: Lens' u Text instance AsUser TT.User where user_id = userId name = userName screen_name = userScreenName instance AsUser TT.UserEntity where user_id = userEntityUserId name = userEntityUserName screen_name = userEntityUserScreenName instance AsUser (TT.Entity TT.UserEntity) where user_id = entityBody.userEntityUserId name = entityBody.userEntityUserName screen_name = entityBody.userEntityUserScreenName