From 37f4d17815a168682616e4c96515a801314bbd35 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Wed, 29 May 2019 13:13:45 -0100 Subject: [PATCH] default values in action Signed-off-by: Maxence Lange cached version of the post contains action.values Signed-off-by: Maxence Lange fixing default values Signed-off-by: Maxence Lange --- lib/Db/CoreRequestBuilder.php | 15 ++++++++++----- lib/Model/StreamAction.php | 17 +++++++++++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php index 5c1c9f59..640e6316 100644 --- a/lib/Db/CoreRequestBuilder.php +++ b/lib/Db/CoreRequestBuilder.php @@ -731,8 +731,12 @@ class CoreRequestBuilder { ->selectAlias('sa.stream_id', 'streamaction_stream_id') ->selectAlias('sa.values', 'streamaction_values'); + $orX = $expr->orX(); + $orX->add($expr->eq($func->lower($pf . '.id'), $func->lower('sa.stream_id'))); + $orX->add($expr->eq($func->lower($pf . '.object_id'), $func->lower('sa.stream_id'))); + $andX = $expr->andX(); - $andX->add($expr->eq($func->lower($pf . '.id'), $func->lower('sa.stream_id'))); + $andX->add($orX); $andX->add( $expr->eq( $func->lower('sa.actor_id'), @@ -763,10 +767,11 @@ class CoreRequestBuilder { $action = new StreamAction(); $action->importFromDatabase($new); - - if ($action->getId() === 0) { - throw new InvalidResourceException(); - } + $action->setDefaultValues( + [ + 'boosted' => false + ] + ); return $action; } diff --git a/lib/Model/StreamAction.php b/lib/Model/StreamAction.php index eb6c3098..4235960d 100644 --- a/lib/Model/StreamAction.php +++ b/lib/Model/StreamAction.php @@ -209,6 +209,23 @@ class StreamAction implements JsonSerializable { } + /** + * @param array $default + * + * @return StreamAction + */ + public function setDefaultValues(array $default): StreamAction { + $keys = array_keys($default); + foreach ($keys as $k) { + if (!array_key_exists($k, $this->values)) { + $this->values[$k] = $default[$k]; + } + } + + return $this; + } + + /** * @param array $data */