cloudyr / MTurkR

R Client for the MTurk Requester API
https://cloud.r-project.org/package=MTurkR
91 stars 18 forks source link

ContactWorkers for ineligible workers #29

Closed leeper closed 11 years ago

leeper commented 11 years ago

When trying to use ContactWorkers for an ineligible worker (one who hasn't worked for you before), the MTurk response is that the request was valid but also contains a NotifyWorkersFailureStatus element. These need to be parsed and the value in the ContactWorkers return value should probably be changed from TRUE to something else.

Here's an example response:

<?xml version="1.0"?>
<NotifyWorkersResponse>
<OperationRequest>
<RequestId>b8eed79a-dd73-4249-92ab-e6cf9b3e3a20</RequestId></OperationRequest>
<NotifyWorkersResult>
<Request>
<IsValid>True</IsValid>
</Request>
<NotifyWorkersFailureStatus>
<WorkerId>A11VGV0ZAI1EQ2</WorkerId>
<NotifyWorkersFailureMessage>Cannot send a notification to a worker who has not done any work for you</NotifyWorkersFailureMessage>
<NotifyWorkersFailureCode>HardFailure</NotifyWorkersFailureCode>
</NotifyWorkersFailureStatus>
</NotifyWorkersResult>
</NotifyWorkersResponse>

The response in batch mode is similar:

<?xml version="1.0"?>
<NotifyWorkersResponse><OperationRequest><RequestId>7311d1f3-14f3-4171-9b33-ebf7c0d15ec6</RequestId></OperationRequest><NotifyWorkersResult><Request><IsValid>True</IsValid></Request><NotifyWorkersFailureStatus><WorkerId>A12H0Z2FYNK844</WorkerId><NotifyWorkersFailureMessage>Cannot send a notification to a worker who has not done any work for you</NotifyWorkersFailureMessage><NotifyWorkersFailureCode>HardFailure</NotifyWorkersFailureCode></NotifyWorkersFailureStatus><NotifyWorkersFailureStatus><WorkerId>A11VGV0ZAI1EQ2</WorkerId><NotifyWorkersFailureMessage>Cannot send a notification to a worker who has not done any work for you</NotifyWorkersFailureMessage><NotifyWorkersFailureCode>HardFailure</NotifyWorkersFailureCode></NotifyWorkersFailureStatus></NotifyWorkersResult></NotifyWorkersResponse>