gogol-blogger-0.1.0: gen/Network/Google/Resource/Blogger/Posts/Update.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- |
-- Module : Network.Google.Resource.Blogger.Posts.Update
-- Copyright : (c) 2015-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Update a post.
--
-- /See:/ <https://developers.google.com/blogger/docs/3.0/getting_started Blogger API Reference> for @blogger.posts.update@.
module Network.Google.Resource.Blogger.Posts.Update
(
-- * REST Resource
PostsUpdateResource
-- * Creating a Request
, postsUpdate
, PostsUpdate
-- * Request Lenses
, puFetchBody
, puFetchImages
, puBlogId
, puPayload
, puMaxComments
, puRevert
, puPostId
, puPublish
) where
import Network.Google.Blogger.Types
import Network.Google.Prelude
-- | A resource alias for @blogger.posts.update@ method which the
-- 'PostsUpdate' request conforms to.
type PostsUpdateResource =
"blogger" :>
"v3" :>
"blogs" :>
Capture "blogId" Text :>
"posts" :>
Capture "postId" Text :>
QueryParam "fetchBody" Bool :>
QueryParam "fetchImages" Bool :>
QueryParam "maxComments" (Textual Word32) :>
QueryParam "revert" Bool :>
QueryParam "publish" Bool :>
QueryParam "alt" AltJSON :>
ReqBody '[JSON] Post' :> Put '[JSON] Post'
-- | Update a post.
--
-- /See:/ 'postsUpdate' smart constructor.
data PostsUpdate = PostsUpdate'
{ _puFetchBody :: !Bool
, _puFetchImages :: !(Maybe Bool)
, _puBlogId :: !Text
, _puPayload :: !Post'
, _puMaxComments :: !(Maybe (Textual Word32))
, _puRevert :: !(Maybe Bool)
, _puPostId :: !Text
, _puPublish :: !(Maybe Bool)
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'PostsUpdate' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'puFetchBody'
--
-- * 'puFetchImages'
--
-- * 'puBlogId'
--
-- * 'puPayload'
--
-- * 'puMaxComments'
--
-- * 'puRevert'
--
-- * 'puPostId'
--
-- * 'puPublish'
postsUpdate
:: Text -- ^ 'puBlogId'
-> Post' -- ^ 'puPayload'
-> Text -- ^ 'puPostId'
-> PostsUpdate
postsUpdate pPuBlogId_ pPuPayload_ pPuPostId_ =
PostsUpdate'
{ _puFetchBody = True
, _puFetchImages = Nothing
, _puBlogId = pPuBlogId_
, _puPayload = pPuPayload_
, _puMaxComments = Nothing
, _puRevert = Nothing
, _puPostId = pPuPostId_
, _puPublish = Nothing
}
-- | Whether the body content of the post is included with the result
-- (default: true).
puFetchBody :: Lens' PostsUpdate Bool
puFetchBody
= lens _puFetchBody (\ s a -> s{_puFetchBody = a})
-- | Whether image URL metadata for each post is included in the returned
-- result (default: false).
puFetchImages :: Lens' PostsUpdate (Maybe Bool)
puFetchImages
= lens _puFetchImages
(\ s a -> s{_puFetchImages = a})
-- | The ID of the Blog.
puBlogId :: Lens' PostsUpdate Text
puBlogId = lens _puBlogId (\ s a -> s{_puBlogId = a})
-- | Multipart request metadata.
puPayload :: Lens' PostsUpdate Post'
puPayload
= lens _puPayload (\ s a -> s{_puPayload = a})
-- | Maximum number of comments to retrieve with the returned post.
puMaxComments :: Lens' PostsUpdate (Maybe Word32)
puMaxComments
= lens _puMaxComments
(\ s a -> s{_puMaxComments = a})
. mapping _Coerce
-- | Whether a revert action should be performed when the post is updated
-- (default: false).
puRevert :: Lens' PostsUpdate (Maybe Bool)
puRevert = lens _puRevert (\ s a -> s{_puRevert = a})
-- | The ID of the Post.
puPostId :: Lens' PostsUpdate Text
puPostId = lens _puPostId (\ s a -> s{_puPostId = a})
-- | Whether a publish action should be performed when the post is updated
-- (default: false).
puPublish :: Lens' PostsUpdate (Maybe Bool)
puPublish
= lens _puPublish (\ s a -> s{_puPublish = a})
instance GoogleRequest PostsUpdate where
type Rs PostsUpdate = Post'
type Scopes PostsUpdate =
'["https://www.googleapis.com/auth/blogger"]
requestClient PostsUpdate'{..}
= go _puBlogId _puPostId (Just _puFetchBody)
_puFetchImages
_puMaxComments
_puRevert
_puPublish
(Just AltJSON)
_puPayload
bloggerService
where go
= buildClient (Proxy :: Proxy PostsUpdateResource)
mempty