friend_relation.dart 1011 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. class FriendRelation {
  2. final String id;
  3. final String friendId;
  4. final RequestStatus requestStatus;
  5. const FriendRelation({
  6. required this.id,
  7. required this.friendId,
  8. required this.requestStatus,
  9. });
  10. factory FriendRelation.fromMap(String relationId, Map<String, dynamic> map, String userId) {
  11. return FriendRelation(
  12. id: relationId,
  13. friendId: _getId(map, userId),
  14. requestStatus: getRequestStatus(map["request_status"]),
  15. );
  16. }
  17. static String _getId(Map<String, dynamic> map, String userId) {
  18. if (map['user_id'] == userId) {
  19. return map['friend_id'];
  20. } else {
  21. return map['user_id'];
  22. }
  23. }
  24. static RequestStatus getRequestStatus(String status) {
  25. if (status == "pending") return RequestStatus.pending;
  26. if (status == "accepted") return RequestStatus.accepted;
  27. if (status == "rejected") return RequestStatus.rejected;
  28. throw Exception("Request status invalid");
  29. }
  30. }
  31. enum RequestStatus {
  32. pending,
  33. accepted,
  34. rejected,
  35. }