mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 16:29:58 +09:00
Split requests/responses into separate files
This commit is contained in:
34
osu.Game/Online/API/Requests/CreateRoomRequest.cs
Normal file
34
osu.Game/Online/API/Requests/CreateRoomRequest.cs
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Net.Http;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using osu.Framework.IO.Network;
|
||||||
|
using osu.Game.Online.Multiplayer;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class CreateRoomRequest : APIRequest<Room>
|
||||||
|
{
|
||||||
|
private readonly Room room;
|
||||||
|
|
||||||
|
public CreateRoomRequest(Room room)
|
||||||
|
{
|
||||||
|
this.room = room;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override WebRequest CreateWebRequest()
|
||||||
|
{
|
||||||
|
var req = base.CreateWebRequest();
|
||||||
|
|
||||||
|
req.ContentType = "application/json";
|
||||||
|
req.Method = HttpMethod.Post;
|
||||||
|
|
||||||
|
req.AddRaw(JsonConvert.SerializeObject(room));
|
||||||
|
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => "rooms";
|
||||||
|
}
|
||||||
|
}
|
30
osu.Game/Online/API/Requests/CreateRoomScoreRequest.cs
Normal file
30
osu.Game/Online/API/Requests/CreateRoomScoreRequest.cs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Net.Http;
|
||||||
|
using osu.Framework.IO.Network;
|
||||||
|
using osu.Game.Online.API.Requests.Responses;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class CreateRoomScoreRequest : APIRequest<APIRoomScore>
|
||||||
|
{
|
||||||
|
private readonly int roomId;
|
||||||
|
private readonly int playlistItemId;
|
||||||
|
|
||||||
|
public CreateRoomScoreRequest(int roomId, int playlistItemId)
|
||||||
|
{
|
||||||
|
this.roomId = roomId;
|
||||||
|
this.playlistItemId = playlistItemId;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override WebRequest CreateWebRequest()
|
||||||
|
{
|
||||||
|
var req = base.CreateWebRequest();
|
||||||
|
req.Method = HttpMethod.Post;
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $@"rooms/{roomId}/playlist/{playlistItemId}/scores";
|
||||||
|
}
|
||||||
|
}
|
44
osu.Game/Online/API/Requests/GetRoomsRequest.cs
Normal file
44
osu.Game/Online/API/Requests/GetRoomsRequest.cs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using osu.Game.Online.Multiplayer;
|
||||||
|
using osu.Game.Screens.Multi.Lounge.Components;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class GetRoomsRequest : APIRequest<List<Room>>
|
||||||
|
{
|
||||||
|
private readonly PrimaryFilter primaryFilter;
|
||||||
|
|
||||||
|
public GetRoomsRequest(PrimaryFilter primaryFilter)
|
||||||
|
{
|
||||||
|
this.primaryFilter = primaryFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
string target = "rooms";
|
||||||
|
|
||||||
|
switch (primaryFilter)
|
||||||
|
{
|
||||||
|
case PrimaryFilter.Open:
|
||||||
|
break;
|
||||||
|
case PrimaryFilter.Owned:
|
||||||
|
target += "/owned";
|
||||||
|
break;
|
||||||
|
case PrimaryFilter.Participated:
|
||||||
|
target += "/participated";
|
||||||
|
break;
|
||||||
|
case PrimaryFilter.RecentlyEnded:
|
||||||
|
target += "/ended";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
31
osu.Game/Online/API/Requests/JoinRoomRequest.cs
Normal file
31
osu.Game/Online/API/Requests/JoinRoomRequest.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Net.Http;
|
||||||
|
using osu.Framework.IO.Network;
|
||||||
|
using osu.Game.Online.Multiplayer;
|
||||||
|
using osu.Game.Users;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class JoinRoomRequest : APIRequest
|
||||||
|
{
|
||||||
|
private readonly Room room;
|
||||||
|
private readonly User user;
|
||||||
|
|
||||||
|
public JoinRoomRequest(Room room, User user)
|
||||||
|
{
|
||||||
|
this.room = room;
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override WebRequest CreateWebRequest()
|
||||||
|
{
|
||||||
|
var req = base.CreateWebRequest();
|
||||||
|
req.Method = HttpMethod.Put;
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $"rooms/{room.RoomID.Value}/users/{user.Id}";
|
||||||
|
}
|
||||||
|
}
|
31
osu.Game/Online/API/Requests/PartRoomRequest.cs
Normal file
31
osu.Game/Online/API/Requests/PartRoomRequest.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Net.Http;
|
||||||
|
using osu.Framework.IO.Network;
|
||||||
|
using osu.Game.Online.Multiplayer;
|
||||||
|
using osu.Game.Users;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class PartRoomRequest : APIRequest
|
||||||
|
{
|
||||||
|
private readonly Room room;
|
||||||
|
private readonly User user;
|
||||||
|
|
||||||
|
public PartRoomRequest(Room room, User user)
|
||||||
|
{
|
||||||
|
this.room = room;
|
||||||
|
this.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override WebRequest CreateWebRequest()
|
||||||
|
{
|
||||||
|
var req = base.CreateWebRequest();
|
||||||
|
req.Method = HttpMethod.Delete;
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $"rooms/{room.RoomID.Value}/users/{user.Id}";
|
||||||
|
}
|
||||||
|
}
|
13
osu.Game/Online/API/Requests/Responses/APIRoomScore.cs
Normal file
13
osu.Game/Online/API/Requests/Responses/APIRoomScore.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests.Responses
|
||||||
|
{
|
||||||
|
public class APIRoomScore
|
||||||
|
{
|
||||||
|
[JsonProperty("id")]
|
||||||
|
public int ID { get; set; }
|
||||||
|
}
|
||||||
|
}
|
40
osu.Game/Online/API/Requests/SubmitRoomScoreRequest.cs
Normal file
40
osu.Game/Online/API/Requests/SubmitRoomScoreRequest.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using System.Net.Http;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using osu.Framework.IO.Network;
|
||||||
|
using osu.Game.Scoring;
|
||||||
|
|
||||||
|
namespace osu.Game.Online.API.Requests
|
||||||
|
{
|
||||||
|
public class SubmitRoomScoreRequest : APIRequest
|
||||||
|
{
|
||||||
|
private readonly int scoreId;
|
||||||
|
private readonly int roomId;
|
||||||
|
private readonly int playlistItemId;
|
||||||
|
private readonly ScoreInfo scoreInfo;
|
||||||
|
|
||||||
|
public SubmitRoomScoreRequest(int scoreId, int roomId, int playlistItemId, ScoreInfo scoreInfo)
|
||||||
|
{
|
||||||
|
this.scoreId = scoreId;
|
||||||
|
this.roomId = roomId;
|
||||||
|
this.playlistItemId = playlistItemId;
|
||||||
|
this.scoreInfo = scoreInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override WebRequest CreateWebRequest()
|
||||||
|
{
|
||||||
|
var req = base.CreateWebRequest();
|
||||||
|
|
||||||
|
req.ContentType = "application/json";
|
||||||
|
req.Method = HttpMethod.Put;
|
||||||
|
|
||||||
|
req.AddRaw(JsonConvert.SerializeObject(scoreInfo));
|
||||||
|
|
||||||
|
return req;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Target => $@"rooms/{roomId}/playlist/{playlistItemId}/scores/{scoreId}";
|
||||||
|
}
|
||||||
|
}
|
@ -2,13 +2,11 @@
|
|||||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Net.Http;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.IO.Network;
|
|
||||||
using osu.Framework.Logging;
|
using osu.Framework.Logging;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
|
using osu.Game.Online.API.Requests;
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Multiplayer;
|
||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
using osu.Game.Screens.Multi.Ranking;
|
using osu.Game.Screens.Multi.Ranking;
|
||||||
@ -40,7 +38,7 @@ namespace osu.Game.Screens.Multi.Play
|
|||||||
|
|
||||||
bool failed = false;
|
bool failed = false;
|
||||||
|
|
||||||
var req = new CreateScoreRequest(room.RoomID.Value ?? 0, playlistItemId);
|
var req = new CreateRoomScoreRequest(room.RoomID.Value ?? 0, playlistItemId);
|
||||||
req.Success += r => token = r.ID;
|
req.Success += r => token = r.ID;
|
||||||
req.Failure += e =>
|
req.Failure += e =>
|
||||||
{
|
{
|
||||||
@ -67,7 +65,7 @@ namespace osu.Game.Screens.Multi.Play
|
|||||||
|
|
||||||
Debug.Assert(token != null);
|
Debug.Assert(token != null);
|
||||||
|
|
||||||
var request = new SubmitScoreRequest(token.Value, room.RoomID.Value ?? 0, playlistItemId, score);
|
var request = new SubmitRoomScoreRequest(token.Value, room.RoomID.Value ?? 0, playlistItemId, score);
|
||||||
request.Failure += e => Logger.Error(e, "Failed to submit score");
|
request.Failure += e => Logger.Error(e, "Failed to submit score");
|
||||||
api.Queue(request);
|
api.Queue(request);
|
||||||
|
|
||||||
@ -76,61 +74,4 @@ namespace osu.Game.Screens.Multi.Play
|
|||||||
|
|
||||||
protected override Results CreateResults(ScoreInfo score) => new MultiResults(score, room);
|
protected override Results CreateResults(ScoreInfo score) => new MultiResults(score, room);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SubmitScoreRequest : APIRequest
|
|
||||||
{
|
|
||||||
private readonly int scoreId;
|
|
||||||
private readonly int roomId;
|
|
||||||
private readonly int playlistItemId;
|
|
||||||
private readonly ScoreInfo scoreInfo;
|
|
||||||
|
|
||||||
public SubmitScoreRequest(int scoreId, int roomId, int playlistItemId, ScoreInfo scoreInfo)
|
|
||||||
{
|
|
||||||
this.scoreId = scoreId;
|
|
||||||
this.roomId = roomId;
|
|
||||||
this.playlistItemId = playlistItemId;
|
|
||||||
this.scoreInfo = scoreInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
|
||||||
{
|
|
||||||
var req = base.CreateWebRequest();
|
|
||||||
|
|
||||||
req.ContentType = "application/json";
|
|
||||||
req.Method = HttpMethod.Put;
|
|
||||||
|
|
||||||
req.AddRaw(JsonConvert.SerializeObject(scoreInfo));
|
|
||||||
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => $@"rooms/{roomId}/playlist/{playlistItemId}/scores/{scoreId}";
|
|
||||||
}
|
|
||||||
|
|
||||||
public class CreateScoreRequest : APIRequest<CreateScoreResult>
|
|
||||||
{
|
|
||||||
private readonly int roomId;
|
|
||||||
private readonly int playlistItemId;
|
|
||||||
|
|
||||||
public CreateScoreRequest(int roomId, int playlistItemId)
|
|
||||||
{
|
|
||||||
this.roomId = roomId;
|
|
||||||
this.playlistItemId = playlistItemId;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
|
||||||
{
|
|
||||||
var req = base.CreateWebRequest();
|
|
||||||
req.Method = HttpMethod.Post;
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => $@"rooms/{roomId}/playlist/{playlistItemId}/scores";
|
|
||||||
}
|
|
||||||
|
|
||||||
public class CreateScoreResult
|
|
||||||
{
|
|
||||||
[JsonProperty("id")]
|
|
||||||
public int ID { get; set; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -2,22 +2,18 @@
|
|||||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Newtonsoft.Json;
|
|
||||||
using osu.Framework.Allocation;
|
using osu.Framework.Allocation;
|
||||||
using osu.Framework.Configuration;
|
using osu.Framework.Configuration;
|
||||||
using osu.Framework.IO.Network;
|
|
||||||
using osu.Framework.Logging;
|
using osu.Framework.Logging;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Online;
|
using osu.Game.Online;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
|
using osu.Game.Online.API.Requests;
|
||||||
using osu.Game.Online.Multiplayer;
|
using osu.Game.Online.Multiplayer;
|
||||||
using osu.Game.Rulesets;
|
using osu.Game.Rulesets;
|
||||||
using osu.Game.Screens.Multi.Lounge.Components;
|
using osu.Game.Screens.Multi.Lounge.Components;
|
||||||
using osu.Game.Users;
|
|
||||||
|
|
||||||
namespace osu.Game.Screens.Multi
|
namespace osu.Game.Screens.Multi
|
||||||
{
|
{
|
||||||
@ -148,106 +144,5 @@ namespace osu.Game.Screens.Multi
|
|||||||
foreach (var pi in room.Playlist)
|
foreach (var pi in room.Playlist)
|
||||||
pi.MapObjects(beatmaps, rulesets);
|
pi.MapObjects(beatmaps, rulesets);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class CreateRoomRequest : APIRequest<Room>
|
|
||||||
{
|
|
||||||
private readonly Room room;
|
|
||||||
|
|
||||||
public CreateRoomRequest(Room room)
|
|
||||||
{
|
|
||||||
this.room = room;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
|
||||||
{
|
|
||||||
var req = base.CreateWebRequest();
|
|
||||||
|
|
||||||
req.ContentType = "application/json";
|
|
||||||
req.Method = HttpMethod.Post;
|
|
||||||
|
|
||||||
req.AddRaw(JsonConvert.SerializeObject(room));
|
|
||||||
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => "rooms";
|
|
||||||
}
|
|
||||||
|
|
||||||
private class JoinRoomRequest : APIRequest
|
|
||||||
{
|
|
||||||
private readonly Room room;
|
|
||||||
private readonly User user;
|
|
||||||
|
|
||||||
public JoinRoomRequest(Room room, User user)
|
|
||||||
{
|
|
||||||
this.room = room;
|
|
||||||
this.user = user;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
|
||||||
{
|
|
||||||
var req = base.CreateWebRequest();
|
|
||||||
req.Method = HttpMethod.Put;
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => $"rooms/{room.RoomID.Value}/users/{user.Id}";
|
|
||||||
}
|
|
||||||
|
|
||||||
private class PartRoomRequest : APIRequest
|
|
||||||
{
|
|
||||||
private readonly Room room;
|
|
||||||
private readonly User user;
|
|
||||||
|
|
||||||
public PartRoomRequest(Room room, User user)
|
|
||||||
{
|
|
||||||
this.room = room;
|
|
||||||
this.user = user;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
|
||||||
{
|
|
||||||
var req = base.CreateWebRequest();
|
|
||||||
req.Method = HttpMethod.Delete;
|
|
||||||
return req;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target => $"rooms/{room.RoomID.Value}/users/{user.Id}";
|
|
||||||
}
|
|
||||||
|
|
||||||
private class GetRoomsRequest : APIRequest<List<Room>>
|
|
||||||
{
|
|
||||||
private readonly PrimaryFilter primaryFilter;
|
|
||||||
|
|
||||||
public GetRoomsRequest(PrimaryFilter primaryFilter)
|
|
||||||
{
|
|
||||||
this.primaryFilter = primaryFilter;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override string Target
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
string target = "rooms";
|
|
||||||
|
|
||||||
switch (primaryFilter)
|
|
||||||
{
|
|
||||||
case PrimaryFilter.Open:
|
|
||||||
break;
|
|
||||||
case PrimaryFilter.Owned:
|
|
||||||
target += "/owned";
|
|
||||||
break;
|
|
||||||
case PrimaryFilter.Participated:
|
|
||||||
target += "/participated";
|
|
||||||
break;
|
|
||||||
case PrimaryFilter.RecentlyEnded:
|
|
||||||
target += "/ended";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user