A framework for building convergent cross-platform Nextcloud clients using Flutter.
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.
 
 

54 lines
1.3 KiB

// ignore_for_file: public_member_api_docs
import 'dart:convert';
import 'package:crypto/crypto.dart';
import 'package:crypton/crypton.dart';
import 'package:nextcloud/src/api/notifications.openapi.dart';
/// Generates the push token hash which is just sha512
String generatePushTokenHash(final String pushToken) => sha512.convert(utf8.encode(pushToken)).toString();
/// Decrypts the subject of a push notification
NotificationsNotificationDecryptedSubject decryptPushNotificationSubject(
final RSAPrivateKey privateKey,
final String subject,
) =>
NotificationsNotificationDecryptedSubject.fromJson(
json.decode(privateKey.decrypt(subject)) as Map<String, dynamic>,
);
/// See https://github.com/nextcloud/news/blob/4a107b3d53c4fe651ac704251b99e04a53cd587f/lib/Db/ListType.php
enum NewsListType {
feed(0),
folder(1),
starred(2),
allItems(3),
shared(4),
explore(5),
unread(6);
const NewsListType(this.code);
final int code;
}
enum ShareType {
user(0),
group(1),
usergroup(2),
link(3),
email(4),
// 5 was contact, is no longer used
remote(6),
circle(7),
guest(8),
remoteGroup(9),
room(10),
// 11 is userroom, but it's only used internally
deck(12),
deckUser(13);
const ShareType(this.code);
final int code;
}