Create an abstraction for APIMessagesRequest

This commit is contained in:
miterosan
2018-04-14 13:23:16 +02:00
parent a9f3885d28
commit 1b51da70af
4 changed files with 65 additions and 49 deletions

View File

@ -9,12 +9,11 @@ using osu.Game.Online.Chat;
namespace osu.Game.Online.API.Requests
{
public class GetMessagesRequest : APIRequest<List<Message>>
public class GetMessagesRequest : APIMessagesRequest
{
private readonly IEnumerable<Channel> channels;
private long? since;
public GetMessagesRequest(IEnumerable<Channel> channels, long? sinceId)
public GetMessagesRequest(IEnumerable<Channel> channels, long? sinceId) : base(sinceId)
{
if (channels == null)
throw new ArgumentNullException(nameof(channels));
@ -22,7 +21,6 @@ namespace osu.Game.Online.API.Requests
throw new ArgumentException("All channels in the argument channels must have the targettype Channel");
this.channels = channels;
since = sinceId;
}
protected override WebRequest CreateWebRequest()
@ -31,7 +29,6 @@ namespace osu.Game.Online.API.Requests
var req = base.CreateWebRequest();
req.AddParameter(@"channels", channelString);
if (since.HasValue) req.AddParameter(@"since", since.Value.ToString());
return req;
}

View File

@ -1,28 +1,15 @@
// 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.Framework.IO.Network;
using osu.Game.Online.Chat;
namespace osu.Game.Online.API.Requests
{
public class GetPrivateMessagesRequest : APIRequest<List<Message>>
public class GetPrivateMessagesRequest : APIMessagesRequest
{
private long? since;
public GetPrivateMessagesRequest(long? sinceId = null)
: base(sinceId)
{
since = sinceId;
}
protected override WebRequest CreateWebRequest()
{
var request = base.CreateWebRequest();
if (since.HasValue)
request.AddParameter(@"since", since.Value.ToString());
return request;
}
protected override string Target => @"chat/messages/private";