You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
justMusic/Sources/justMUSIC/lib/services/NotificationService.dart

50 lines
1.7 KiB

import 'dart:convert';
import 'package:http/http.dart' as http;
import '../main.dart';
import '../values/keys.dart';
class NotificationService {
sendPushMessage(String token, String title, String body) async {
try {
await http.post(Uri.parse('https://fcm.googleapis.com/fcm/send'),
headers: <String, String>{
'Content-Type': 'application/json',
'Authorization':
'key=$keyApiFirebase'
},
body: jsonEncode(<String, dynamic>{
'priority': 'high',
'data': <String, dynamic>{
'click_action': 'FLUTTER_NOTIFICATION_CLICK',
'status': 'done',
'body': body,
'title': title
},
"notification": <String, dynamic>{
"title": title,
"body": body,
},
"to": token,
}));
} catch (e) {
print("error push notification: ${e.toString()}");
}
}
sendNotifyComment(String token, String text) async {
var pseudo = MyApp.userViewModel.userCurrent.pseudo;
await sendPushMessage(token, "$pseudo a commenté votre capsule", "$text");
}
sendNotifyLike(String token, int nbLikes) async {
var pseudo = MyApp.userViewModel.userCurrent.pseudo;
await sendPushMessage(token, "$pseudo a aimé votre capsule", "Votre capsule a été aimé $nbLikes fois.");
}
sendNotifyFriend(String token) async {
var pseudo = MyApp.userViewModel.userCurrent.pseudo;
await sendPushMessage(token, "$pseudo vous suit.", "Il pourra à présent voir votre activité dans son Feed \"Mes Amis\".");
}
}