public static function authorize($data, $publicApiKey, $hash) { $newToken = ""; $row = DB::queryFirstRow("SELECT * FROM CWM_ApiKey as ak JOIN CWM_UserApiKey uak ON ak.Id = uak.ApiKeyId WHERE PublicKey=%s", $publicApiKey); if (!is_null($row) && strlen(trim($publicApiKey)) > 0) { $userId = $row['UserId']; $privateApiKey = $row['PrivateKey']; $apiKeyIndex = $row['Id']; $hashCheck = sha1($data . $privateApiKey . $publicApiKey); $result = $hashCheck == $hash; if ($result) { $oldToken = DB::queryOneField('TokenValue', 'SELECT * FROM CWM_ApiKeySession WHERE UserId=%?', $userId); if (!CWM_API::isTokenValid($oldToken)) { $newToken = sha1($userId . $privateApiKey . $hashCheck . CWM_API::getDateTime(time())); DB::insertUpdate('CWM_ApiKeySession', array('ApiKeyId' => $apiKeyIndex, 'LastAccess' => CWM_API::getDateTime(time()), 'UserId' => $userId, 'TokenValue' => $newToken)); } else { $newToken = $oldToken; } } } return $newToken; }
echo CWM_API::getAsJson($file); }); // Get a file by project ID and file name $f3->route('GET ' . $apiBaseUrl . '/file/@projectId/@fileName/@tokenValue', function ($f3) { require_once $GLOBALS['dirRoot'] . '/api/File.class.php'; $projectId = $f3->get('PARAMS.projectId'); $fileName = $f3->get('PARAMS.fileName'); $tokenValue = $f3->get('PARAMS.tokenValue'); $file = CWM_File::getByProjectIdFileName($projectId, $fileName, $tokenValue); echo CWM_API::getAsJson($file); }); // Create a file $f3->route('POST ' . $apiBaseUrl . '/file/create/@tokenValue', function ($f3) { require_once $GLOBALS['dirRoot'] . '/api/File.class.php'; $tokenValue = $f3->get('PARAMS.tokenValue'); if (CWM_API::isTokenValid($tokenValue)) { $jsonData = json_decode($f3->get('BODY')); $_projectId = $jsonData->{'ProjectId'}; $_fileName = $jsonData->{'Name'}; $_fileData = $jsonData->{'Data'}; $_userId = CWM_API::getUserId($tokenValue); $_solutionName = $jsonData->{'SolutionName'}; $_projectName = $jsonData->{'ProjectName'}; $_file = new CWM_File(-1, $_projectId, $_fileName, $_fileData, $_userId, $_solutionName, $_projectName, null); $_file->create(); echo $_file->ID; //json_encode(array('ID' => $_file->ID)); } else { echo -1; } });