{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.MechanicalTurk.GetAssignment
(
getAssignment
, GetAssignment
, gaAssignmentId
, getAssignmentResponse
, GetAssignmentResponse
, garsHIT
, garsAssignment
, garsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.MechanicalTurk.Types
import Network.AWS.MechanicalTurk.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetAssignment = GetAssignment'
{ _gaAssignmentId :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getAssignment
:: Text
-> GetAssignment
getAssignment pAssignmentId_ = GetAssignment' {_gaAssignmentId = pAssignmentId_}
gaAssignmentId :: Lens' GetAssignment Text
gaAssignmentId = lens _gaAssignmentId (\ s a -> s{_gaAssignmentId = a})
instance AWSRequest GetAssignment where
type Rs GetAssignment = GetAssignmentResponse
request = postJSON mechanicalTurk
response
= receiveJSON
(\ s h x ->
GetAssignmentResponse' <$>
(x .?> "HIT") <*> (x .?> "Assignment") <*>
(pure (fromEnum s)))
instance Hashable GetAssignment where
instance NFData GetAssignment where
instance ToHeaders GetAssignment where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("MTurkRequesterServiceV20170117.GetAssignment" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetAssignment where
toJSON GetAssignment'{..}
= object
(catMaybes
[Just ("AssignmentId" .= _gaAssignmentId)])
instance ToPath GetAssignment where
toPath = const "/"
instance ToQuery GetAssignment where
toQuery = const mempty
data GetAssignmentResponse = GetAssignmentResponse'
{ _garsHIT :: !(Maybe HIT)
, _garsAssignment :: !(Maybe Assignment)
, _garsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getAssignmentResponse
:: Int
-> GetAssignmentResponse
getAssignmentResponse pResponseStatus_ =
GetAssignmentResponse'
{ _garsHIT = Nothing
, _garsAssignment = Nothing
, _garsResponseStatus = pResponseStatus_
}
garsHIT :: Lens' GetAssignmentResponse (Maybe HIT)
garsHIT = lens _garsHIT (\ s a -> s{_garsHIT = a})
garsAssignment :: Lens' GetAssignmentResponse (Maybe Assignment)
garsAssignment = lens _garsAssignment (\ s a -> s{_garsAssignment = a})
garsResponseStatus :: Lens' GetAssignmentResponse Int
garsResponseStatus = lens _garsResponseStatus (\ s a -> s{_garsResponseStatus = a})
instance NFData GetAssignmentResponse where