This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files

380 lines
9.2 KiB
C++

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/mturk-requester/model/HIT.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace MTurk
{
namespace Model
{
HIT::HIT() :
m_hITIdHasBeenSet(false),
m_hITTypeIdHasBeenSet(false),
m_hITGroupIdHasBeenSet(false),
m_hITLayoutIdHasBeenSet(false),
m_creationTimeHasBeenSet(false),
m_titleHasBeenSet(false),
m_descriptionHasBeenSet(false),
m_questionHasBeenSet(false),
m_keywordsHasBeenSet(false),
m_hITStatus(HITStatus::NOT_SET),
m_hITStatusHasBeenSet(false),
m_maxAssignments(0),
m_maxAssignmentsHasBeenSet(false),
m_rewardHasBeenSet(false),
m_autoApprovalDelayInSeconds(0),
m_autoApprovalDelayInSecondsHasBeenSet(false),
m_expirationHasBeenSet(false),
m_assignmentDurationInSeconds(0),
m_assignmentDurationInSecondsHasBeenSet(false),
m_requesterAnnotationHasBeenSet(false),
m_qualificationRequirementsHasBeenSet(false),
m_hITReviewStatus(HITReviewStatus::NOT_SET),
m_hITReviewStatusHasBeenSet(false),
m_numberOfAssignmentsPending(0),
m_numberOfAssignmentsPendingHasBeenSet(false),
m_numberOfAssignmentsAvailable(0),
m_numberOfAssignmentsAvailableHasBeenSet(false),
m_numberOfAssignmentsCompleted(0),
m_numberOfAssignmentsCompletedHasBeenSet(false)
{
}
HIT::HIT(JsonView jsonValue) :
m_hITIdHasBeenSet(false),
m_hITTypeIdHasBeenSet(false),
m_hITGroupIdHasBeenSet(false),
m_hITLayoutIdHasBeenSet(false),
m_creationTimeHasBeenSet(false),
m_titleHasBeenSet(false),
m_descriptionHasBeenSet(false),
m_questionHasBeenSet(false),
m_keywordsHasBeenSet(false),
m_hITStatus(HITStatus::NOT_SET),
m_hITStatusHasBeenSet(false),
m_maxAssignments(0),
m_maxAssignmentsHasBeenSet(false),
m_rewardHasBeenSet(false),
m_autoApprovalDelayInSeconds(0),
m_autoApprovalDelayInSecondsHasBeenSet(false),
m_expirationHasBeenSet(false),
m_assignmentDurationInSeconds(0),
m_assignmentDurationInSecondsHasBeenSet(false),
m_requesterAnnotationHasBeenSet(false),
m_qualificationRequirementsHasBeenSet(false),
m_hITReviewStatus(HITReviewStatus::NOT_SET),
m_hITReviewStatusHasBeenSet(false),
m_numberOfAssignmentsPending(0),
m_numberOfAssignmentsPendingHasBeenSet(false),
m_numberOfAssignmentsAvailable(0),
m_numberOfAssignmentsAvailableHasBeenSet(false),
m_numberOfAssignmentsCompleted(0),
m_numberOfAssignmentsCompletedHasBeenSet(false)
{
*this = jsonValue;
}
HIT& HIT::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("HITId"))
{
m_hITId = jsonValue.GetString("HITId");
m_hITIdHasBeenSet = true;
}
if(jsonValue.ValueExists("HITTypeId"))
{
m_hITTypeId = jsonValue.GetString("HITTypeId");
m_hITTypeIdHasBeenSet = true;
}
if(jsonValue.ValueExists("HITGroupId"))
{
m_hITGroupId = jsonValue.GetString("HITGroupId");
m_hITGroupIdHasBeenSet = true;
}
if(jsonValue.ValueExists("HITLayoutId"))
{
m_hITLayoutId = jsonValue.GetString("HITLayoutId");
m_hITLayoutIdHasBeenSet = true;
}
if(jsonValue.ValueExists("CreationTime"))
{
m_creationTime = jsonValue.GetDouble("CreationTime");
m_creationTimeHasBeenSet = true;
}
if(jsonValue.ValueExists("Title"))
{
m_title = jsonValue.GetString("Title");
m_titleHasBeenSet = true;
}
if(jsonValue.ValueExists("Description"))
{
m_description = jsonValue.GetString("Description");
m_descriptionHasBeenSet = true;
}
if(jsonValue.ValueExists("Question"))
{
m_question = jsonValue.GetString("Question");
m_questionHasBeenSet = true;
}
if(jsonValue.ValueExists("Keywords"))
{
m_keywords = jsonValue.GetString("Keywords");
m_keywordsHasBeenSet = true;
}
if(jsonValue.ValueExists("HITStatus"))
{
m_hITStatus = HITStatusMapper::GetHITStatusForName(jsonValue.GetString("HITStatus"));
m_hITStatusHasBeenSet = true;
}
if(jsonValue.ValueExists("MaxAssignments"))
{
m_maxAssignments = jsonValue.GetInteger("MaxAssignments");
m_maxAssignmentsHasBeenSet = true;
}
if(jsonValue.ValueExists("Reward"))
{
m_reward = jsonValue.GetString("Reward");
m_rewardHasBeenSet = true;
}
if(jsonValue.ValueExists("AutoApprovalDelayInSeconds"))
{
m_autoApprovalDelayInSeconds = jsonValue.GetInt64("AutoApprovalDelayInSeconds");
m_autoApprovalDelayInSecondsHasBeenSet = true;
}
if(jsonValue.ValueExists("Expiration"))
{
m_expiration = jsonValue.GetDouble("Expiration");
m_expirationHasBeenSet = true;
}
if(jsonValue.ValueExists("AssignmentDurationInSeconds"))
{
m_assignmentDurationInSeconds = jsonValue.GetInt64("AssignmentDurationInSeconds");
m_assignmentDurationInSecondsHasBeenSet = true;
}
if(jsonValue.ValueExists("RequesterAnnotation"))
{
m_requesterAnnotation = jsonValue.GetString("RequesterAnnotation");
m_requesterAnnotationHasBeenSet = true;
}
if(jsonValue.ValueExists("QualificationRequirements"))
{
Array<JsonView> qualificationRequirementsJsonList = jsonValue.GetArray("QualificationRequirements");
for(unsigned qualificationRequirementsIndex = 0; qualificationRequirementsIndex < qualificationRequirementsJsonList.GetLength(); ++qualificationRequirementsIndex)
{
m_qualificationRequirements.push_back(qualificationRequirementsJsonList[qualificationRequirementsIndex].AsObject());
}
m_qualificationRequirementsHasBeenSet = true;
}
if(jsonValue.ValueExists("HITReviewStatus"))
{
m_hITReviewStatus = HITReviewStatusMapper::GetHITReviewStatusForName(jsonValue.GetString("HITReviewStatus"));
m_hITReviewStatusHasBeenSet = true;
}
if(jsonValue.ValueExists("NumberOfAssignmentsPending"))
{
m_numberOfAssignmentsPending = jsonValue.GetInteger("NumberOfAssignmentsPending");
m_numberOfAssignmentsPendingHasBeenSet = true;
}
if(jsonValue.ValueExists("NumberOfAssignmentsAvailable"))
{
m_numberOfAssignmentsAvailable = jsonValue.GetInteger("NumberOfAssignmentsAvailable");
m_numberOfAssignmentsAvailableHasBeenSet = true;
}
if(jsonValue.ValueExists("NumberOfAssignmentsCompleted"))
{
m_numberOfAssignmentsCompleted = jsonValue.GetInteger("NumberOfAssignmentsCompleted");
m_numberOfAssignmentsCompletedHasBeenSet = true;
}
return *this;
}
JsonValue HIT::Jsonize() const
{
JsonValue payload;
if(m_hITIdHasBeenSet)
{
payload.WithString("HITId", m_hITId);
}
if(m_hITTypeIdHasBeenSet)
{
payload.WithString("HITTypeId", m_hITTypeId);
}
if(m_hITGroupIdHasBeenSet)
{
payload.WithString("HITGroupId", m_hITGroupId);
}
if(m_hITLayoutIdHasBeenSet)
{
payload.WithString("HITLayoutId", m_hITLayoutId);
}
if(m_creationTimeHasBeenSet)
{
payload.WithDouble("CreationTime", m_creationTime.SecondsWithMSPrecision());
}
if(m_titleHasBeenSet)
{
payload.WithString("Title", m_title);
}
if(m_descriptionHasBeenSet)
{
payload.WithString("Description", m_description);
}
if(m_questionHasBeenSet)
{
payload.WithString("Question", m_question);
}
if(m_keywordsHasBeenSet)
{
payload.WithString("Keywords", m_keywords);
}
if(m_hITStatusHasBeenSet)
{
payload.WithString("HITStatus", HITStatusMapper::GetNameForHITStatus(m_hITStatus));
}
if(m_maxAssignmentsHasBeenSet)
{
payload.WithInteger("MaxAssignments", m_maxAssignments);
}
if(m_rewardHasBeenSet)
{
payload.WithString("Reward", m_reward);
}
if(m_autoApprovalDelayInSecondsHasBeenSet)
{
payload.WithInt64("AutoApprovalDelayInSeconds", m_autoApprovalDelayInSeconds);
}
if(m_expirationHasBeenSet)
{
payload.WithDouble("Expiration", m_expiration.SecondsWithMSPrecision());
}
if(m_assignmentDurationInSecondsHasBeenSet)
{
payload.WithInt64("AssignmentDurationInSeconds", m_assignmentDurationInSeconds);
}
if(m_requesterAnnotationHasBeenSet)
{
payload.WithString("RequesterAnnotation", m_requesterAnnotation);
}
if(m_qualificationRequirementsHasBeenSet)
{
Array<JsonValue> qualificationRequirementsJsonList(m_qualificationRequirements.size());
for(unsigned qualificationRequirementsIndex = 0; qualificationRequirementsIndex < qualificationRequirementsJsonList.GetLength(); ++qualificationRequirementsIndex)
{
qualificationRequirementsJsonList[qualificationRequirementsIndex].AsObject(m_qualificationRequirements[qualificationRequirementsIndex].Jsonize());
}
payload.WithArray("QualificationRequirements", std::move(qualificationRequirementsJsonList));
}
if(m_hITReviewStatusHasBeenSet)
{
payload.WithString("HITReviewStatus", HITReviewStatusMapper::GetNameForHITReviewStatus(m_hITReviewStatus));
}
if(m_numberOfAssignmentsPendingHasBeenSet)
{
payload.WithInteger("NumberOfAssignmentsPending", m_numberOfAssignmentsPending);
}
if(m_numberOfAssignmentsAvailableHasBeenSet)
{
payload.WithInteger("NumberOfAssignmentsAvailable", m_numberOfAssignmentsAvailable);
}
if(m_numberOfAssignmentsCompletedHasBeenSet)
{
payload.WithInteger("NumberOfAssignmentsCompleted", m_numberOfAssignmentsCompleted);
}
return payload;
}
} // namespace Model
} // namespace MTurk
} // namespace Aws