mirror of
https://github.com/snltty/linker.git
synced 2025-10-05 17:16:56 +08:00
cdkey
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
using linker.libs.api;
|
||||
using linker.libs;
|
||||
using linker.libs.api;
|
||||
using linker.libs.extends;
|
||||
using linker.messenger.api;
|
||||
using linker.messenger.relay.client;
|
||||
using linker.messenger.relay.client.transport;
|
||||
using linker.messenger.relay.messenger;
|
||||
using linker.messenger.relay.server;
|
||||
using linker.messenger.signin;
|
||||
|
||||
namespace linker.messenger.relay
|
||||
{
|
||||
@@ -15,19 +18,23 @@ namespace linker.messenger.relay
|
||||
private readonly RelayClientTestTransfer relayTestTransfer;
|
||||
private readonly RelayClientTransfer relayTransfer;
|
||||
private readonly IRelayClientStore relayClientStore;
|
||||
private readonly SignInClientState signInClientState;
|
||||
private readonly IMessengerSender messengerSender;
|
||||
private readonly ISerializer serializer;
|
||||
private readonly ISignInClientStore signInClientStore;
|
||||
|
||||
public RelayApiController(RelayClientTestTransfer relayTestTransfer, RelayClientTransfer relayTransfer, IRelayClientStore relayClientStore)
|
||||
public RelayApiController(RelayClientTestTransfer relayTestTransfer, RelayClientTransfer relayTransfer, IRelayClientStore relayClientStore,
|
||||
SignInClientState signInClientState, IMessengerSender messengerSender, ISerializer serializer, ISignInClientStore signInClientStore)
|
||||
{
|
||||
this.relayTestTransfer = relayTestTransfer;
|
||||
this.relayTransfer = relayTransfer;
|
||||
this.relayClientStore = relayClientStore;
|
||||
this.signInClientState = signInClientState;
|
||||
this.messengerSender = messengerSender;
|
||||
this.serializer = serializer;
|
||||
this.signInClientStore = signInClientStore;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置中继协议
|
||||
/// </summary>
|
||||
/// <param name="param"></param>
|
||||
/// <returns></returns>
|
||||
[Access(AccessValue.Config)]
|
||||
public bool SetServers(ApiControllerParamsInfo param)
|
||||
{
|
||||
@@ -50,6 +57,90 @@ namespace linker.messenger.relay
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public async Task<bool> AccessCdkey(ApiControllerParamsInfo param)
|
||||
{
|
||||
var resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||
{
|
||||
Connection = signInClientState.Connection,
|
||||
MessengerId = (ushort)RelayMessengerIds.AccessCdkey,
|
||||
Payload = serializer.Serialize(relayClientStore.Server.SecretKey)
|
||||
});
|
||||
return resp.Code == MessageResponeCodes.OK && resp.Data.Span.SequenceEqual(Helper.TrueArray);
|
||||
}
|
||||
|
||||
[Access(AccessValue.RelayCdkey)]
|
||||
public async Task<bool> AddCdkey(ApiControllerParamsInfo param)
|
||||
{
|
||||
RelayServerCdkeyInfo info = param.Content.DeJson<RelayServerCdkeyInfo>();
|
||||
var resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||
{
|
||||
Connection = signInClientState.Connection,
|
||||
MessengerId = (ushort)RelayMessengerIds.AddCdkey,
|
||||
Payload = serializer.Serialize(new RelayServerCdkeyAddInfo
|
||||
{
|
||||
Data = info,
|
||||
SecretKey = relayClientStore.Server.SecretKey
|
||||
})
|
||||
});
|
||||
|
||||
return resp.Code == MessageResponeCodes.OK && resp.Data.Span.SequenceEqual(Helper.TrueArray);
|
||||
}
|
||||
|
||||
[Access(AccessValue.RelayCdkey)]
|
||||
public async Task<bool> DelCdkey(ApiControllerParamsInfo param)
|
||||
{
|
||||
var resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||
{
|
||||
Connection = signInClientState.Connection,
|
||||
MessengerId = (ushort)RelayMessengerIds.DelCdkey,
|
||||
Payload = serializer.Serialize(new RelayServerCdkeyDelInfo
|
||||
{
|
||||
Id = param.Content,
|
||||
SecretKey = relayClientStore.Server.SecretKey
|
||||
})
|
||||
});
|
||||
|
||||
return resp.Code == MessageResponeCodes.OK && resp.Data.Span.SequenceEqual(Helper.TrueArray);
|
||||
}
|
||||
|
||||
[Access(AccessValue.RelayCdkey)]
|
||||
public async Task<RelayServerCdkeyPageResultInfo> PageCdkey(ApiControllerParamsInfo param)
|
||||
{
|
||||
RelayServerCdkeyPageRequestInfo info = param.Content.DeJson<RelayServerCdkeyPageRequestInfo>();
|
||||
info.SecretKey = relayClientStore.Server.SecretKey;
|
||||
var resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||
{
|
||||
Connection = signInClientState.Connection,
|
||||
MessengerId = (ushort)RelayMessengerIds.PageCdkey,
|
||||
Payload = serializer.Serialize(info)
|
||||
});
|
||||
if (resp.Code == MessageResponeCodes.OK)
|
||||
{
|
||||
return serializer.Deserialize<RelayServerCdkeyPageResultInfo>(resp.Data.Span);
|
||||
}
|
||||
|
||||
return new RelayServerCdkeyPageResultInfo();
|
||||
}
|
||||
|
||||
public async Task<RelayServerCdkeyPageResultInfo> MyCdkey(ApiControllerParamsInfo param)
|
||||
{
|
||||
RelayServerCdkeyPageRequestInfo info = param.Content.DeJson<RelayServerCdkeyPageRequestInfo>();
|
||||
info.SecretKey = relayClientStore.Server.SecretKey;
|
||||
info.UserId = signInClientStore.Server.UserId;
|
||||
var resp = await messengerSender.SendReply(new MessageRequestWrap
|
||||
{
|
||||
Connection = signInClientState.Connection,
|
||||
MessengerId = (ushort)RelayMessengerIds.PageCdkey,
|
||||
Payload = serializer.Serialize(info)
|
||||
});
|
||||
if (resp.Code == MessageResponeCodes.OK)
|
||||
{
|
||||
return serializer.Deserialize<RelayServerCdkeyPageResultInfo>(resp.Data.Span);
|
||||
}
|
||||
|
||||
return new RelayServerCdkeyPageResultInfo();
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class RelayConnectInfo
|
||||
|
Reference in New Issue
Block a user