66using System . Threading . Tasks ;
77
88using CorePush . Interfaces ;
9+ using CorePush . Models ;
910using CorePush . Serialization ;
1011using CorePush . Utils ;
1112
@@ -86,7 +87,7 @@ public FirebaseSender(FirebaseSettings settings, HttpClient http, IJsonSerialize
8687 /// <param name="payload">Notification payload that will be serialized using Newtonsoft.Json package</param>
8788 /// <param name="cancellationToken">Cancellation token</param>
8889 /// <exception cref="HttpRequestException">Throws exception when not successful</exception>
89- public async Task < FirebaseResponse > SendAsync ( object payload , CancellationToken cancellationToken = default )
90+ public async Task < PushResult > SendAsync ( object payload , CancellationToken cancellationToken = default )
9091 {
9192 var json = serializer . Serialize ( payload ) ;
9293
@@ -102,12 +103,12 @@ public async Task<FirebaseResponse> SendAsync(object payload, CancellationToken
102103 using var response = await http . SendAsync ( message , cancellationToken ) ;
103104 var responseString = await response . Content . ReadAsStringAsync ( cancellationToken ) ;
104105
105- if ( ! response . IsSuccessStatusCode )
106- {
107- throw new HttpRequestException ( "Firebase notification error: " + responseString ) ;
108- }
109-
110- return serializer . Deserialize < FirebaseResponse > ( responseString ) ;
106+ var firebaseResponse = serializer . Deserialize < FirebaseResponse > ( responseString ) ;
107+
108+ return new PushResult ( ( int ) response . StatusCode ,
109+ response . IsSuccessStatusCode ,
110+ firebaseResponse . Name ?? firebaseResponse . Error ? . Message ,
111+ responseString ) ;
111112 }
112113
113114 private async Task < string > GetJwtTokenAsync ( )
0 commit comments