twonly-app/lib/src/providers/api/api_utils.dart
2025-01-27 20:30:41 +01:00

42 lines
1.2 KiB
Dart

import 'package:fixnum/fixnum.dart';
import 'package:twonly/src/proto/api/client_to_server.pb.dart' as client;
import 'package:twonly/src/proto/api/client_to_server.pbserver.dart';
import 'package:twonly/src/proto/api/error.pb.dart';
import 'package:twonly/src/proto/api/server_to_client.pb.dart' as server;
class Result<T, E> {
final T? value;
final E? error;
bool get isSuccess => value != null;
bool get isError => error != null;
Result.success(this.value) : error = null;
Result.error(this.error) : value = null;
}
Result asResult(server.ServerToClient? msg) {
if (msg == null) {
return Result.error(ErrorCode.InternalError);
}
if (msg.v0.response.hasOk()) {
return Result.success(msg.v0.response.ok);
} else {
return Result.error(msg.v0.response.error);
}
}
ClientToServer createClientToServerFromHandshake(Handshake handshake) {
var v0 = client.V0()
..seq = Int64(0)
..handshake = handshake;
return ClientToServer()..v0 = v0;
}
ClientToServer createClientToServerFromApplicationData(
ApplicationData applicationData) {
var v0 = client.V0()
..seq = Int64(0)
..applicationdata = applicationData;
return ClientToServer()..v0 = v0;
}