summaryrefslogtreecommitdiffstats
path: root/controller/itemapicontroller.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/itemapicontroller.php')
-rw-r--r--controller/itemapicontroller.php29
1 files changed, 19 insertions, 10 deletions
diff --git a/controller/itemapicontroller.php b/controller/itemapicontroller.php
index da4596d1e..40366a936 100644
--- a/controller/itemapicontroller.php
+++ b/controller/itemapicontroller.php
@@ -26,6 +26,7 @@ class ItemApiController extends ApiController {
private $itemService;
private $userId;
+ private $serializer;
public function __construct($appName,
IRequest $request,
@@ -34,7 +35,7 @@ class ItemApiController extends ApiController {
parent::__construct($appName, $request);
$this->itemService = $itemService;
$this->userId = $userId;
- $this->registerSerializer(new EntityApiSerializer('items'));
+ $this->serializer = new EntityApiSerializer('items');
}
@@ -42,16 +43,22 @@ class ItemApiController extends ApiController {
* @NoAdminRequired
* @NoCSRFRequired
* @CORS
- *
+ *
* @param int $type
* @param int $id
* @param bool $getRead
* @param int $batchSize
* @param int $offset
+ * @param int $oldestFirst
*/
- public function index($type, $id, $getRead, $batchSize=20, $offset=0) {
- return $this->itemService->findAll($id, $type, $batchSize, $offset,
- $getRead, $this->userId);
+ public function index($type, $id, $getRead, $batchSize=20, $offset=0,
+ $oldestFirst=false) {
+ return $this->serializer->serialize(
+ $this->itemService->findAll(
+ $id, $type, $batchSize, $offset, $getRead, $oldestFirst,
+ $this->userId
+ )
+ );
}
@@ -59,14 +66,16 @@ class ItemApiController extends ApiController {
* @NoAdminRequired
* @NoCSRFRequired
* @CORS
- *
+ *
* @param int $type
* @param int $id
* @param int $lastModified
*/
public function updated($type, $id, $lastModified=0) {
- return $this->itemService->findAllNew($id, $type, $lastModified,
- true, $this->userId);
+ return $this->serializer->serialize(
+ $this->itemService->findAllNew($id, $type, $lastModified,
+ true, $this->userId)
+ );
}
@@ -188,7 +197,7 @@ class ItemApiController extends ApiController {
private function setMultipleStarred($isStarred, $items) {
foreach($items as $item) {
try {
- $this->itemService->star($item['feedId'], $item['guidHash'],
+ $this->itemService->star($item['feedId'], $item['guidHash'],
$isStarred, $this->userId);
} catch(ServiceNotFoundException $ex) {
continue;
@@ -213,7 +222,7 @@ class ItemApiController extends ApiController {
* @NoAdminRequired
* @NoCSRFRequired
* @CORS
- *
+ *
* @param int[] item ids
*/
public function unstarMultiple($items) {
esis/KinesisClient.h> #include <aws/kinesis/model/PutRecordRequest.h> #include "aws_kinesis_put_record.h" using namespace Aws; SDKOptions options; Kinesis::KinesisClient *client; struct request_outcome { Kinesis::Model::PutRecordOutcomeCallable future_outcome; size_t data_len; }; Vector<request_outcome> request_outcomes; void kinesis_init(const char *region, const char *access_key_id, const char *secret_key, const long timeout) { InitAPI(options); Client::ClientConfiguration config; config.region = region; config.requestTimeoutMs = timeout; config.connectTimeoutMs = timeout; if(access_key_id && *access_key_id && secret_key && *secret_key) { client = New<Kinesis::KinesisClient>("client", Auth::AWSCredentials(access_key_id, secret_key), config); } else { client = New<Kinesis::KinesisClient>("client", config); } } void kinesis_shutdown() { Delete(client); ShutdownAPI(options); } int kinesis_put_record(const char *stream_name, const char *partition_key, const char *data, size_t data_len) { Kinesis::Model::PutRecordRequest request; request.SetStreamName(stream_name); request.SetPartitionKey(partition_key); request.SetData(Utils::ByteBuffer((unsigned char*) data, data_len)); request_outcomes.push_back({client->PutRecordCallable(request), data_len}); return 0; } int kinesis_get_result(char *error_message, size_t *sent_bytes, size_t *lost_bytes) { Kinesis::Model::PutRecordOutcome outcome; *sent_bytes = 0; *lost_bytes = 0; for(auto request_outcome = request_outcomes.begin(); request_outcome != request_outcomes.end(); ) { std::future_status status = request_outcome->future_outcome.wait_for(std::chrono::microseconds(100)); if(status == std::future_status::ready || status == std::future_status::deferred) { outcome = request_outcome->future_outcome.get(); *sent_bytes += request_outcome->data_len; if(!outcome.IsSuccess()) { *lost_bytes += request_outcome->data_len; outcome.GetError().GetMessage().copy(error_message, ERROR_LINE_MAX); } request_outcomes.erase(request_outcome); } else { ++request_outcome; } } if(*lost_bytes) { return 1; } return 0; }