11#include " pro/pro.hpp"
22
33namespace session ::nodeapi {
4+
45std::string_view ProBackendEnumToString (SESSION_PRO_BACKEND_PAYMENT_PROVIDER v) {
56 switch (v) {
67 case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL: return " NIL" ;
78 case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE: return " GOOGLE_PLAY_STORE" ;
89 case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE: return " IOS_APP_STORE" ;
910 case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_COUNT:
10- // TODO: do we want to assert this cant happen? or should it be allowed?
11- return " Count" ;
11+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PAYMENT_PROVIDER_COUNT" );
1212 }
13+ UNREACHABLE ();
1314}
1415
1516std::string_view ProBackendEnumToString (SESSION_PRO_BACKEND_PAYMENT_STATUS v) {
@@ -20,42 +21,89 @@ std::string_view ProBackendEnumToString(SESSION_PRO_BACKEND_PAYMENT_STATUS v) {
2021 case SESSION_PRO_BACKEND_PAYMENT_STATUS_EXPIRED: return " EXPIRED" ;
2122 case SESSION_PRO_BACKEND_PAYMENT_STATUS_REFUNDED: return " REFUNDED" ;
2223 case SESSION_PRO_BACKEND_PAYMENT_STATUS_COUNT:
23- // TODO: do we want to assert this cant happen? or should it be allowed?
24- return " COUNT" ;
24+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PAYMENT_STATUS_COUNT" );
2525 }
26+ UNREACHABLE ();
2627}
2728
28- std::string_view ProBackendEnumToString (SESSION_PRO_BACKEND_PLAN v) {
29+ std::string_view proBackendEnumToString (SESSION_PRO_BACKEND_PLAN v) {
2930 switch (v) {
3031 case SESSION_PRO_BACKEND_PLAN_NIL: return " NIL" ;
3132 case SESSION_PRO_BACKEND_PLAN_ONE_MONTH: return " ONE_MONTH" ;
3233 case SESSION_PRO_BACKEND_PLAN_THREE_MONTHS: return " THREE_MONTHS" ;
3334 case SESSION_PRO_BACKEND_PLAN_TWELVE_MONTHS: return " TWELVE_MONTHS" ;
3435 case SESSION_PRO_BACKEND_PLAN_COUNT:
35- // TODO: do we want to assert this cant happen? or should it be allowed?
36- return " COUNT" ;
36+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PLAN_COUNT" );
3737 }
38+ UNREACHABLE ();
3839}
3940
40- std::string_view ProBackendEnumToString (SESSION_PRO_BACKEND_USER_PRO_STATUS v) {
41+ std::string_view proBackendEnumToString (SESSION_PRO_BACKEND_USER_PRO_STATUS v) {
4142 switch (v) {
4243 case SESSION_PRO_BACKEND_USER_PRO_STATUS_NEVER_BEEN_PRO: return " NEVER_BEEN_PRO" ;
4344 case SESSION_PRO_BACKEND_USER_PRO_STATUS_ACTIVE: return " ACTIVE" ;
4445 case SESSION_PRO_BACKEND_USER_PRO_STATUS_EXPIRED: return " EXPIRED" ;
4546 case SESSION_PRO_BACKEND_USER_PRO_STATUS_COUNT:
46- // TODO: do we want to assert this cant happen? or should it be allowed?
47- return " COUNT" ;
47+ throw std::invalid_argument (" SESSION_PRO_BACKEND_USER_PRO_STATUS_COUNT" );
4848 }
49+ UNREACHABLE ();
4950}
5051
5152std::string_view ProBackendEnumToString (SESSION_PRO_BACKEND_GET_PRO_STATUS_ERROR_REPORT v) {
5253 switch (v) {
5354 case SESSION_PRO_BACKEND_GET_PRO_STATUS_ERROR_REPORT_SUCCESS: return " SUCCESS" ;
5455 case SESSION_PRO_BACKEND_GET_PRO_STATUS_ERROR_REPORT_GENERIC_ERROR: return " GENERIC_ERROR" ;
5556 case SESSION_PRO_BACKEND_GET_PRO_STATUS_ERROR_REPORT_COUNT:
56- // TODO: do we want to assert this cant happen? or should it be allowed?
57- return " COUNT" ;
57+ throw std::invalid_argument (" SESSION_PRO_BACKEND_GET_PRO_STATUS_ERROR_REPORT_COUNT" );
58+ }
59+ UNREACHABLE ();
60+ }
61+
62+ std::string_view proBackendEnumPlanToString (SESSION_PRO_BACKEND_PLAN v) {
63+ switch (v) {
64+ case SESSION_PRO_BACKEND_PLAN_NIL: return " NIL" ;
65+ case SESSION_PRO_BACKEND_PLAN_ONE_MONTH: return " ONE_MONTH" ;
66+ case SESSION_PRO_BACKEND_PLAN_THREE_MONTHS: return " THREE_MONTHS" ;
67+ case SESSION_PRO_BACKEND_PLAN_TWELVE_MONTHS: return " TWELVE_MONTHS" ;
68+ case SESSION_PRO_BACKEND_PLAN_COUNT:
69+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PLAN_COUNT" );
70+ }
71+ UNREACHABLE ();
72+ }
73+
74+ std::string_view proBackendEnumPaymentProviderToString (SESSION_PRO_BACKEND_PAYMENT_PROVIDER v) {
75+ switch (v) {
76+ // Note: we want those to map ProOriginatingPlatform keys
77+ case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_NIL: return " Nil" ;
78+ case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_GOOGLE_PLAY_STORE: return " GooglePlayStore" ;
79+ case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_IOS_APP_STORE: return " iOSAppStore" ;
80+ case SESSION_PRO_BACKEND_PAYMENT_PROVIDER_COUNT:
81+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PAYMENT_PROVIDER_COUNT" );
82+ }
83+ UNREACHABLE ();
84+ }
85+
86+ std::string_view proBackendEnumPaymentStatusToString (SESSION_PRO_BACKEND_PAYMENT_STATUS v) {
87+ switch (v) {
88+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_NIL: return " NIL" ;
89+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_UNREDEEMED: return " UNREDEEMED" ;
90+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_REDEEMED: return " REDEEMED" ;
91+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_EXPIRED: return " EXPIRED" ;
92+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_REFUNDED: return " REFUNDED" ;
93+ case SESSION_PRO_BACKEND_PAYMENT_STATUS_COUNT:
94+ throw std::invalid_argument (" SESSION_PRO_BACKEND_PAYMENT_STATUS_COUNT" );
5895 }
96+ UNREACHABLE ();
5997}
6098
99+ std::string_view proBackendEnumToString (session::ProFeaturesForMsgStatus v) {
100+ switch (v) {
101+ case session::ProFeaturesForMsgStatus::Success: return " SUCCESS" ;
102+ case session::ProFeaturesForMsgStatus::UTFDecodingError: return " UTF_DECODING_ERROR" ;
103+ case session::ProFeaturesForMsgStatus::ExceedsCharacterLimit:
104+ return " EXCEEDS_CHARACTER_LIMIT" ;
105+ }
106+ UNREACHABLE ();
61107}
108+
109+ } // namespace session::nodeapi
0 commit comments