Browse Source

Fix user_status heartbeat response

Signed-off-by: jld3103 <jld3103yt@gmail.com>
tags/v26.0.0beta1
jld3103 1 year ago
parent
commit
1f49a56a98
No account linked to committer's email address

+ 7
- 7
apps/user_status/lib/Controller/HeartbeatController.php View File

use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Db\DoesNotExistException; use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController; use OCP\AppFramework\OCSController;
use OCP\AppFramework\Utility\ITimeFactory; use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
* @NoAdminRequired * @NoAdminRequired
* *
* @param string $status * @param string $status
* @return JSONResponse
* @return DataResponse
*/ */
public function heartbeat(string $status): JSONResponse {
public function heartbeat(string $status): DataResponse {
if (!\in_array($status, [IUserStatus::ONLINE, IUserStatus::AWAY], true)) { if (!\in_array($status, [IUserStatus::ONLINE, IUserStatus::AWAY], true)) {
return new JSONResponse([], Http::STATUS_BAD_REQUEST);
return new DataResponse([], Http::STATUS_BAD_REQUEST);
} }


$user = $this->userSession->getUser(); $user = $this->userSession->getUser();
if ($user === null) { if ($user === null) {
return new JSONResponse([], Http::STATUS_INTERNAL_SERVER_ERROR);
return new DataResponse([], Http::STATUS_INTERNAL_SERVER_ERROR);
} }


$event = new UserLiveStatusEvent( $event = new UserLiveStatusEvent(


$userStatus = $event->getUserStatus(); $userStatus = $event->getUserStatus();
if (!$userStatus) { if (!$userStatus) {
return new JSONResponse([], Http::STATUS_NO_CONTENT);
return new DataResponse([], Http::STATUS_NO_CONTENT);
} }


/** @psalm-suppress UndefinedInterfaceMethod */ /** @psalm-suppress UndefinedInterfaceMethod */
return new JSONResponse($this->formatStatus($userStatus->getInternal()));
return new DataResponse($this->formatStatus($userStatus->getInternal()));
} }


private function formatStatus(UserStatus $status): array { private function formatStatus(UserStatus $status): array {

+ 1
- 1
apps/user_status/src/services/heartbeatService.js View File

const response = await HttpClient.put(url, { const response = await HttpClient.put(url, {
status: isAway ? 'away' : 'online', status: isAway ? 'away' : 'online',
}) })
return response.data
return response.data.ocs.data
} }


export { export {

+ 2
- 2
dist/user_status-menu.js
File diff suppressed because it is too large
View File


+ 1
- 1
dist/user_status-menu.js.map
File diff suppressed because it is too large
View File


Loading…
Cancel
Save