* update it and ignore result from function because the update
* will always run.
*/
- updateWernisRegistrationStatusByKey('api_redirect_challenge', $challenge, 'ACCEPTED');
+ updateWernisRegistrationDataByKey('api_auth_status', 'api_redirect_challenge', $challenge, 'ACCEPTED');
} // END - if
// Now call "get.php"
- // @TODO Hard-coded value (anrede, etc.)
- $response = executeWernisApiGet($rows[0], 'data', 'anrede|vorname|name|strasse|plz|ort|birth_day|birth_month|birth_year|email');
+ $response = executeWernisApiGet($rows[0], 'data', 'anrede|vorname|name|strasse|plz|ort|birth_day|birth_month|birth_year|email|werber');
// Was the status okay?
if (isHttpResponseStatusOkay($response)) {
/*
* Do some checks on the decoded string, it should be a
- * serialized array with 10 entries (see above
+ * serialized array with 11 entries (see above
* executeWernisApiGet() call).
*/
- assert(substr($decodedData, 0, 6) == 'a:10:{');
+ assert(substr($decodedData, 0, 6) == 'a:11:{');
assert(substr($decodedData, -1, 1) == '}');
// The array seems to be fine, unserialize it
$userData = unserialize($decodedData);
- die(__FUNCTION__.'<pre>'.print_r($userData, TRUE).'</pre>');
+
+ // All mappings WDS66->mailer
+ $mappings = array(
+ 'anrede' => 'gender',
+ 'vorname' => 'surname',
+ 'name' => 'family',
+ 'strasse' => 'street_nr',
+ 'plz' => 'zip',
+ 'ort' => 'city',
+ 'email' => 'email',
+ 'birth_day' => 'birth_day',
+ 'birth_month' => 'birth_month',
+ 'birth_year' => 'birth_year',
+ 'werber' => 'wernis_refid'
+ );
+
+ // Array for mapped data
+ $mappedData = array();
+
+ // Map all WDS66 entries into mailer entries
+ foreach ($mappings as $from => $to) {
+ // All must exist
+ if (!isset($userData[$from])) {
+ // Element $from does not exist
+ reportBug(__FUNCTION__, __LINE__, 'Cannot map from=' . $from . ' -> to=' . $to . ': element does not exist.');
+ } // END - if
+
+ // "Map" all
+ $mappedData[$to] = convertEmptyToNull($userData[$from]);
+ } // END - foreach
+
+ // Both arrays must have same size
+ assert(count($userData) == count($mappedData));
+
+ // Now add userid and registration provider from WDS66
+ $mappedData['wernis_userid'] = bigintval($rows[0]['wernis_userid']);
+ $mappedData['registration_provider'] = 'wernis';
+
+ die(__FUNCTION__ . '<pre>'.print_r($mappedData, TRUE).'</pre>');
} else {
// Something bad happened
displayMessage($response['message']);
}
// Updates auth status by given key/value pair
-function updateWernisRegistrationStatusByKey ($key, $value, $newStatus) {
+function updateWernisRegistrationDataByKey ($updatedColumn, $key, $oldValue, $newValue) {
// Run the update
sqlQueryEscaped("UPDATE
`{?_MYSQL_PREFIX?}_wernis_regs`
SET
- `api_auth_status`='%s'
+ `%s`='%s'
WHERE
`%s`='%s' AND
- `api_auth_status` != '%s'
+ `%s` != '%s'
LIMIT 1",
array(
- $newStatus,
+ $updatedColumn,
+ $newValue,
$key,
- $value,
- $newStatus
+ $updatedColumn,
+ $oldValue
), __FUNCTION__, __LINE__
);
$challenge
), __FUNCTION__, __LINE__
);
-
- // Should be inserted
- assert(sqlAffectedRows() == 1);
} else {
// Update challenge
sqlQueryEscaped("UPDATE
bigintval($args['wernis_userid'])
), __FUNCTION__, __LINE__
);
-
- // Should always be updated
- assert(sqlAffectedRows() == 1);
}
+ // Should always update/insert
+ assert(sqlAffectedRows() == 1);
+
// Redirect to WDS66 module=auth ...
redirectToUrl(getWernisBaseUrl() . '/modules.php?module=auth&auth_key=' . $args['auth_key'] . '&params=' . urlencode(base64_encode('&module=' . getModule() . '&what=' . getWhat())) . '&challenge=' . $challenge);
}
// auth_key and wernis_userid must be set
assert(isset($args['auth_key']));
assert(isset($args['wernis_userid']));
-
die(__FUNCTION__ . '<pre>'.print_r($args, TRUE).'</pre>');
}