Skip to content

Commit 9818bf7

Browse files
SessionHero01SessionHero01
authored andcommitted
Building request json
1 parent 13d217a commit 9818bf7

File tree

2 files changed

+36
-59
lines changed

2 files changed

+36
-59
lines changed

library/src/main/cpp/pro_backend.cpp

Lines changed: 29 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,59 @@
66

77
using namespace jni_utils;
88

9-
static jobject serializeMasterRotatingSignatures(
10-
JNIEnv *env, const session::pro_backend::MasterRotatingSignatures &sigs) {
11-
JavaLocalRef<jclass> result_class(
12-
env,
13-
env->FindClass(
14-
"network/loki/messenger/libsession_util/pro/BackendRequests$MasterRotatingSignatures"));
15-
16-
return env->NewObject(
17-
result_class.get(),
18-
env->GetMethodID(result_class.get(), "<init>", "([B[B)V"),
19-
util::bytes_from_span(env, sigs.master_sig),
20-
util::bytes_from_span(env, sigs.rotating_sig)
21-
);
22-
}
23-
249
extern "C"
25-
JNIEXPORT jobject JNICALL
26-
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signAddProPaymentRequest(
10+
JNIEXPORT jstring JNICALL
11+
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_buildAddProPaymentRequestJson(
2712
JNIEnv *env, jobject thiz, jint version, jbyteArray master_private_key,
2813
jbyteArray rotating_private_key, jint payment_provider, jstring payment_id,
2914
jstring order_id) {
30-
return run_catching_cxx_exception_or_throws<jobject>(env, [=] {
31-
auto sigs = session::pro_backend::AddProPaymentRequest::build_sigs(
32-
static_cast<std::uint8_t>(version),
15+
return run_catching_cxx_exception_or_throws<jstring>(env, [=]() {
16+
auto json = session::pro_backend::AddProPaymentRequest::build_to_json(
17+
version,
3318
JavaByteArrayRef(env, master_private_key).get(),
3419
JavaByteArrayRef(env, rotating_private_key).get(),
35-
static_cast<SESSION_PRO_BACKEND_PAYMENT_PROVIDER>(
36-
payment_provider),
20+
static_cast<SESSION_PRO_BACKEND_PAYMENT_PROVIDER>(payment_provider),
3721
JavaStringRef(env, payment_id).get_raw(),
3822
JavaStringRef(env, order_id).get_raw());
3923

40-
return serializeMasterRotatingSignatures(env, sigs);
24+
return util::jstringFromOptional(env, json);
4125
});
4226
}
4327

4428
extern "C"
45-
JNIEXPORT jobject JNICALL
46-
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signGetProProofRequest(JNIEnv *env,
47-
jobject thiz,
48-
jint version,
49-
jbyteArray master_private_key,
50-
jbyteArray rotating_private_key,
51-
jlong unix_ts_ms) {
52-
return run_catching_cxx_exception_or_throws<jobject>(env, [=] {
53-
auto sigs = session::pro_backend::GetProProofRequest::build_sigs(
29+
JNIEXPORT jstring JNICALL
30+
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_buildGetProProofRequestJson(
31+
JNIEnv *env, jobject thiz, jint version, jbyteArray master_private_key,
32+
jbyteArray rotating_private_key, jlong now_ms) {
33+
return run_catching_cxx_exception_or_throws<jstring>(env, [=]() {
34+
auto json = session::pro_backend::GetProProofRequest::build_to_json(
5435
version,
5536
JavaByteArrayRef(env, master_private_key).get(),
5637
JavaByteArrayRef(env, rotating_private_key).get(),
57-
std::chrono::sys_time<std::chrono::milliseconds>{
58-
std::chrono::milliseconds{unix_ts_ms}}
38+
std::chrono::sys_time<std::chrono::milliseconds> {
39+
std::chrono::milliseconds(now_ms)
40+
}
5941
);
6042

61-
return serializeMasterRotatingSignatures(env, sigs);
43+
return util::jstringFromOptional(env, json);
6244
});
6345
}
6446

6547
extern "C"
66-
JNIEXPORT jbyteArray JNICALL
67-
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signGetProStatusRequest(
68-
JNIEnv *env, jobject thiz, jint version, jbyteArray master_private_key, jlong now_ms,
48+
JNIEXPORT jstring JNICALL
49+
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_buildGetProStatusRequestJson(
50+
JNIEnv *env, jobject thiz, jint version, jbyteArray pro_master_private_key, jlong now_ms,
6951
jint count) {
70-
return run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
71-
auto sig = session::pro_backend::GetProStatusRequest::build_sig(
72-
static_cast<std::uint8_t>(version),
73-
JavaByteArrayRef(env, master_private_key).get(),
74-
std::chrono::sys_time<std::chrono::milliseconds>{
75-
std::chrono::milliseconds{now_ms}},
76-
static_cast<std::uint32_t>(count)
52+
return run_catching_cxx_exception_or_throws<jstring>(env, [=]() {
53+
auto json = session::pro_backend::GetProStatusRequest::build_to_json(
54+
version,
55+
JavaByteArrayRef(env, pro_master_private_key).get(),
56+
std::chrono::sys_time<std::chrono::milliseconds> {
57+
std::chrono::milliseconds(now_ms)
58+
},
59+
static_cast<uint32_t>(count)
7760
);
7861

79-
return util::bytes_from_span(env, sig);
62+
return util::jstringFromOptional(env, json);
8063
});
8164
}
Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package network.loki.messenger.libsession_util.pro
22

3-
import androidx.annotation.Keep
43
import network.loki.messenger.libsession_util.LibSessionUtilCApi
54

65
typealias PaymentProvider = Int
@@ -9,31 +8,26 @@ object BackendRequests : LibSessionUtilCApi() {
98
const val PAYMENT_PROVIDER_GOOGLE_PLAY: PaymentProvider = 1
109
const val PAYMENT_PROVIDER_APP_STORE: PaymentProvider = 2
1110

12-
class MasterRotatingSignatures @Keep constructor(
13-
val masterSignature: ByteArray,
14-
val rotatingSignature: ByteArray,
15-
)
16-
17-
external fun signAddProPaymentRequest(
11+
external fun buildAddProPaymentRequestJson(
1812
version: Int,
1913
masterPrivateKey: ByteArray,
2014
rotatingPrivateKey: ByteArray,
2115
paymentProvider: PaymentProvider,
2216
paymentId: String,
2317
orderId: String,
24-
): MasterRotatingSignatures
18+
): String
2519

26-
external fun signGetProProofRequest(
20+
external fun buildGetProProofRequestJson(
2721
version: Int,
2822
masterPrivateKey: ByteArray,
2923
rotatingPrivateKey: ByteArray,
3024
nowMs: Long,
31-
): MasterRotatingSignatures
25+
): String
3226

33-
external fun signGetProStatusRequest(
27+
external fun buildGetProStatusRequestJson(
3428
version: Int,
35-
masterPrivateKey: ByteArray,
29+
proMasterPrivateKey: ByteArray,
3630
nowMs: Long,
3731
count: Int,
38-
): ByteArray
32+
): String
3933
}

0 commit comments

Comments
 (0)