sseSubscribe method

Future<void> sseSubscribe(
  1. String token,
  2. String id,
  3. String usr,
  4. String event,
)

Implementation

Future<void> sseSubscribe(String token, String id, String usr, String event) async {
	var uri = Uri.parse(AppConstants.boraConnURL);


	 var params = {
		'id': id,
		'userID':  usr,
		'event': event
	};

	uri = uri.replace(queryParameters: params);

	boraPushClient = BoraPushClient.connect(
		uri:  uri,
		withCredentials:true,
		closeOnError:true,
	);

	myStream = boraPushClient.stream;

	myStream.listen((value) {
		try{
			//Conert to JSON
			var jsonResp = jsonDecode(value);

			if(jsonResp['response'] == 'cancelled'){
				//User cancelled the request
				closeConnection();
				emit(state.copyWith(status: STKPushStatus.customerCanceled));
			}else if(jsonResp['response'] == 'pending'){
				//awaitig confirmation
				emit(state.copyWith(status: STKPushStatus.awaitingConfirmation));
			}else if(jsonResp['response'] == 'success'){
				//The payment was received
				closeConnection();
			try{
				BoraPushTransaction transactionData = BoraPushTransaction.fromJson(jsonResp['data']['response']);

				emit(state.copyWith(status: STKPushStatus.success, transactionData: transactionData));
			}catch(e){
				print('Error parsing response $e');
				emit(state.copyWith(status: STKPushStatus.success));
			}

			}

		}catch(e){
			emit(state.copyWith(status: STKPushStatus.error, exceptionError: '$e'));
			//What to do? Retry | Close
		}
	});


}