166 lines
3 KiB
Dart
166 lines
3 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'Settings.dart';
|
|
|
|
abstract class IPacket {
|
|
String encode();
|
|
|
|
HTTPMethod method();
|
|
String getType();
|
|
}
|
|
|
|
class S2CSimpleReplyPacket implements IPacket {
|
|
final bool done;
|
|
S2CSimpleReplyPacket({required this.done});
|
|
|
|
static S2CSimpleReplyPacket decode(String params) {
|
|
var map = json.decode(params);
|
|
|
|
return S2CSimpleReplyPacket(done: map['done'] as bool);
|
|
}
|
|
|
|
@override
|
|
String encode() {
|
|
return json.encode({"done": done});
|
|
}
|
|
|
|
@override
|
|
HTTPMethod method() {
|
|
return HTTPMethod.Get;
|
|
}
|
|
|
|
@override
|
|
String getType() {
|
|
return "S2CSimpleReply";
|
|
}
|
|
}
|
|
|
|
class C2SPerformSetupPacket implements IPacket {
|
|
final String PSK;
|
|
final String ClientPSK;
|
|
final String host;
|
|
final String user;
|
|
final String pass;
|
|
final String db;
|
|
|
|
C2SPerformSetupPacket(
|
|
{required this.PSK,
|
|
required this.ClientPSK,
|
|
required this.host,
|
|
required this.user,
|
|
required this.pass,
|
|
required this.db});
|
|
|
|
@override
|
|
String encode() {
|
|
return json.encode({
|
|
"psk": PSK,
|
|
"client": ClientPSK,
|
|
"host": host,
|
|
"user": user,
|
|
"pass": pass,
|
|
"db": db,
|
|
"type": getType()
|
|
});
|
|
}
|
|
|
|
static C2SPerformSetupPacket decode(String params) {
|
|
var map = json.decode(params);
|
|
return C2SPerformSetupPacket(
|
|
PSK: map['psk'] as String,
|
|
ClientPSK: map['client'] as String,
|
|
host: map['host'] as String,
|
|
user: map['user'] as String,
|
|
pass: map['pass'] as String,
|
|
db: map['db'] as String);
|
|
}
|
|
|
|
@override
|
|
HTTPMethod method() {
|
|
return HTTPMethod.Post;
|
|
}
|
|
|
|
@override
|
|
String getType() {
|
|
return "C2SPerformSetup";
|
|
}
|
|
}
|
|
|
|
class S2CPongPacket implements IPacket {
|
|
final String PSK;
|
|
final bool authorized;
|
|
|
|
S2CPongPacket({required this.PSK, required this.authorized});
|
|
|
|
@override
|
|
String encode() {
|
|
return json
|
|
.encode({"psk": PSK, "autorized": authorized, "type": getType()});
|
|
}
|
|
|
|
@override
|
|
String getType() {
|
|
return "S2CPong";
|
|
}
|
|
|
|
@override
|
|
HTTPMethod method() {
|
|
return HTTPMethod.Get;
|
|
}
|
|
|
|
static S2CPongPacket decode(String params) {
|
|
var map = json.decode(params);
|
|
|
|
return S2CPongPacket(
|
|
PSK: map['psk'] as String, authorized: map['authorized'] as bool);
|
|
}
|
|
}
|
|
|
|
class NullPacket implements IPacket {
|
|
NullPacket();
|
|
|
|
@override
|
|
String encode() {
|
|
return json.encode({});
|
|
}
|
|
|
|
static NullPacket decode(String params) {
|
|
return NullPacket();
|
|
}
|
|
|
|
@override
|
|
String getType() {
|
|
return "NullPacket";
|
|
}
|
|
|
|
@override
|
|
HTTPMethod method() {
|
|
return HTTPMethod.Get;
|
|
}
|
|
}
|
|
|
|
class C2SPingPacket implements IPacket {
|
|
final String client;
|
|
C2SPingPacket({required this.client});
|
|
|
|
@override
|
|
HTTPMethod method() {
|
|
return HTTPMethod.Post;
|
|
}
|
|
|
|
@override
|
|
String getType() {
|
|
return "C2SPing";
|
|
}
|
|
|
|
static C2SPingPacket decode(String params) {
|
|
var map = json.decode(params);
|
|
|
|
return C2SPingPacket(client: map['client'] as String);
|
|
}
|
|
|
|
@override
|
|
String encode() {
|
|
return json.encode({"client": client});
|
|
}
|
|
}
|