Fix sessionserver/join endpoint: return empty response with 204 status code on success join

This commit is contained in:
ErickSkrauch 2023-11-16 20:21:26 +01:00
parent 984c6e7682
commit 47463d7435
No known key found for this signature in database
GPG Key ID: 669339FCBB30EE0E
3 changed files with 8 additions and 12 deletions

View File

@ -34,19 +34,18 @@ class SessionController extends Controller {
}
/**
* @return array
* @throws ForbiddenOperationException
* @throws IllegalArgumentException
*/
public function actionJoin(): array {
Yii::$app->response->format = Response::FORMAT_JSON;
public function actionJoin(Response $response): void {
$data = Yii::$app->request->post();
$protocol = new ModernJoin($data['accessToken'] ?? '', $data['selectedProfile'] ?? '', $data['serverId'] ?? '');
$joinForm = new JoinForm($protocol);
$joinForm->join(); // will throw an exception in case of any error
return ['id' => 'OK'];
$response->statusCode = 204;
$response->format = Response::FORMAT_RAW;
$response->content = '';
}
public function actionJoinLegacy(): string {

View File

@ -30,7 +30,7 @@ class SessionServerSteps extends FunctionalTester {
'serverId' => $serverId,
]);
$this->canSeeResponseContainsJson(['id' => 'OK']);
$this->seeResponseCodeIs(204);
}
return [$username, $serverId];

View File

@ -150,12 +150,9 @@ class JoinCest {
]);
}
private function expectSuccessResponse(FunctionalTester $I) {
$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
$I->canSeeResponseContainsJson([
'id' => 'OK',
]);
private function expectSuccessResponse(FunctionalTester $I): void {
$I->seeResponseCodeIs(204);
$I->canSeeResponseEquals('');
}
}