forked from firka/student-legacy
startend msg sending api thingie
This commit is contained in:
parent
3484230ced
commit
adc8deffa9
@ -118,7 +118,8 @@ class KretaApiEndpoints {
|
|||||||
static const capabilities = "/ellenorzo/V3/Sajat/Intezmenyek";
|
static const capabilities = "/ellenorzo/V3/Sajat/Intezmenyek";
|
||||||
static String downloadHomeworkAttachments(String uid, String type) =>
|
static String downloadHomeworkAttachments(String uid, String type) =>
|
||||||
"/ellenorzo/V3/Sajat/Csatolmany/$uid";
|
"/ellenorzo/V3/Sajat/Csatolmany/$uid";
|
||||||
static const subjects = "/ellenorzo/V3/Sajat/Ertekelesek/Atlagok/TantargyiAtlagok";
|
static const subjects =
|
||||||
|
"/ellenorzo/V3/Sajat/Ertekelesek/Atlagok/TantargyiAtlagok";
|
||||||
}
|
}
|
||||||
|
|
||||||
class KretaAdminEndpoints {
|
class KretaAdminEndpoints {
|
||||||
|
@ -139,6 +139,9 @@ class KretaClient {
|
|||||||
if (!headerMap.containsKey("content-type")) {
|
if (!headerMap.containsKey("content-type")) {
|
||||||
headerMap["content-type"] = "application/json";
|
headerMap["content-type"] = "application/json";
|
||||||
}
|
}
|
||||||
|
if (url.contains('kommunikacio/uzenetek')) {
|
||||||
|
headerMap["X-Uzenet-Lokalizacio"] = "hu-HU";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = await client.post(Uri.parse(url), headers: headerMap, body: body);
|
res = await client.post(Uri.parse(url), headers: headerMap, body: body);
|
||||||
|
@ -27,27 +27,33 @@ class MessageProvider with ChangeNotifier {
|
|||||||
|
|
||||||
// Load messages from the database
|
// Load messages from the database
|
||||||
if (userId != null) {
|
if (userId != null) {
|
||||||
var dbMessages = await Provider.of<DatabaseProvider>(_context, listen: false).userQuery.getMessages(userId: userId);
|
var dbMessages =
|
||||||
|
await Provider.of<DatabaseProvider>(_context, listen: false)
|
||||||
|
.userQuery
|
||||||
|
.getMessages(userId: userId);
|
||||||
_messages = dbMessages;
|
_messages = dbMessages;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetches all types of Messages
|
// Fetches all types of Messages
|
||||||
Future<void> fetchAll() => Future.forEach(MessageType.values, (MessageType v) => fetch(type: v));
|
Future<void> fetchAll() =>
|
||||||
|
Future.forEach(MessageType.values, (MessageType v) => fetch(type: v));
|
||||||
|
|
||||||
// Fetches Messages from the Kreta API then stores them in the database
|
// Fetches Messages from the Kreta API then stores them in the database
|
||||||
Future<void> fetch({MessageType type = MessageType.inbox}) async {
|
Future<void> fetch({MessageType type = MessageType.inbox}) async {
|
||||||
// Check Message Type
|
// Check Message Type
|
||||||
if (type == MessageType.draft) return;
|
if (type == MessageType.draft) return;
|
||||||
String messageType = ["beerkezett", "elkuldott", "torolt"].elementAt(type.index);
|
String messageType =
|
||||||
|
["beerkezett", "elkuldott", "torolt"].elementAt(type.index);
|
||||||
|
|
||||||
// Check User
|
// Check User
|
||||||
User? user = Provider.of<UserProvider>(_context, listen: false).user;
|
User? user = Provider.of<UserProvider>(_context, listen: false).user;
|
||||||
if (user == null) throw "Cannot fetch Messages for User null";
|
if (user == null) throw "Cannot fetch Messages for User null";
|
||||||
|
|
||||||
// Get messages
|
// Get messages
|
||||||
List? messagesJson = await Provider.of<KretaClient>(_context, listen: false).getAPI(KretaAPI.messages(messageType));
|
List? messagesJson = await Provider.of<KretaClient>(_context, listen: false)
|
||||||
|
.getAPI(KretaAPI.messages(messageType));
|
||||||
if (messagesJson == null) throw "Cannot fetch Messages for User ${user.id}";
|
if (messagesJson == null) throw "Cannot fetch Messages for User ${user.id}";
|
||||||
|
|
||||||
// Parse messages
|
// Parse messages
|
||||||
@ -55,8 +61,12 @@ class MessageProvider with ChangeNotifier {
|
|||||||
await Future.wait(List.generate(messagesJson.length, (index) {
|
await Future.wait(List.generate(messagesJson.length, (index) {
|
||||||
return () async {
|
return () async {
|
||||||
Map message = messagesJson.cast<Map>()[index];
|
Map message = messagesJson.cast<Map>()[index];
|
||||||
Map? messageJson = await Provider.of<KretaClient>(_context, listen: false).getAPI(KretaAPI.message(message["azonosito"].toString()));
|
Map? messageJson =
|
||||||
if (messageJson != null) messages.add(Message.fromJson(messageJson, forceType: type));
|
await Provider.of<KretaClient>(_context, listen: false)
|
||||||
|
.getAPI(KretaAPI.message(message["azonosito"].toString()));
|
||||||
|
if (messageJson != null) {
|
||||||
|
messages.add(Message.fromJson(messageJson, forceType: type));
|
||||||
|
}
|
||||||
}();
|
}();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@ -73,8 +83,30 @@ class MessageProvider with ChangeNotifier {
|
|||||||
if (user == null) throw "Cannot store Messages for User null";
|
if (user == null) throw "Cannot store Messages for User null";
|
||||||
|
|
||||||
String userId = user.id;
|
String userId = user.id;
|
||||||
await Provider.of<DatabaseProvider>(_context, listen: false).userStore.storeMessages(_messages, userId: userId);
|
await Provider.of<DatabaseProvider>(_context, listen: false)
|
||||||
|
.userStore
|
||||||
|
.storeMessages(_messages, userId: userId);
|
||||||
|
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fetch recipients
|
||||||
|
Future<void> fetchRecipients() async {
|
||||||
|
// check user
|
||||||
|
User? user = Provider.of<UserProvider>(_context, listen: false).user;
|
||||||
|
if (user == null) throw "Cannot fetch Messages for User null";
|
||||||
|
|
||||||
|
// get recipients
|
||||||
|
List? recipientsJson =
|
||||||
|
await Provider.of<KretaClient>(_context, listen: false)
|
||||||
|
.getAPI(KretaAPI.recipientsTeacher);
|
||||||
|
if (recipientsJson == null) {
|
||||||
|
throw "Cannot fetch Recipients for User ${user.id}";
|
||||||
|
}
|
||||||
|
|
||||||
|
print(recipientsJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
// send message
|
||||||
|
Future<void> sendMessage() async {}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user