Add `ReplyView`

This commit is contained in:
krawieck 2020-08-10 00:01:10 +02:00
parent ca9759db47
commit 413b4bef30
2 changed files with 158 additions and 0 deletions

View File

@ -0,0 +1,104 @@
import 'package:json_annotation/json_annotation.dart';
part 'reply.g.dart';
/// based on https://github.com/LemmyNet/lemmy/blob/464ea862b10fa7b226b2550268e40d8e685a939c/server/lemmy_db/src/comment_view.rs#L356
@JsonSerializable(fieldRename: FieldRename.snake, createToJson: false)
class ReplyView {
final int id;
final int creatorId;
final int postId;
final String postName;
/// can be null
final int parentId;
final String content;
final bool removed;
final bool read;
final DateTime published;
/// can be null
final DateTime updated;
final bool deleted;
final String apId;
final bool local;
final int communityId;
final String communityActorId;
final bool communityLocal;
final String communityName;
/// can be null
final String communityIcon;
final bool banned;
final bool bannedFromCommunity;
final String creatorActorId;
final bool creatorLocal;
final String creatorName;
/// can be null
final String creatorPreferredUsername;
/// can be null
final String creatorAvatar;
final DateTime creatorPublished;
final int score;
final int upvotes;
final int downvotes;
final int hotRank;
final int hotRankActive;
/// can be null
final int userId;
/// can be null
final int myVote;
/// can be null
final bool subscribed;
/// can be null
final bool saved;
final int recipientId;
const ReplyView({
this.id,
this.creatorId,
this.postId,
this.postName,
this.parentId,
this.content,
this.removed,
this.read,
this.published,
this.updated,
this.deleted,
this.apId,
this.local,
this.communityId,
this.communityActorId,
this.communityLocal,
this.communityName,
this.communityIcon,
this.banned,
this.bannedFromCommunity,
this.creatorActorId,
this.creatorLocal,
this.creatorName,
this.creatorPreferredUsername,
this.creatorAvatar,
this.creatorPublished,
this.score,
this.upvotes,
this.downvotes,
this.hotRank,
this.hotRankActive,
this.userId,
this.myVote,
this.subscribed,
this.saved,
this.recipientId,
});
factory ReplyView.fromJson(Map<String, dynamic> json) =>
_$ReplyViewFromJson(json);
}

View File

@ -0,0 +1,54 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'reply.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
ReplyView _$ReplyViewFromJson(Map<String, dynamic> json) {
return ReplyView(
id: json['id'] as int,
creatorId: json['creator_id'] as int,
postId: json['post_id'] as int,
postName: json['post_name'] as String,
parentId: json['parent_id'] as int,
content: json['content'] as String,
removed: json['removed'] as bool,
read: json['read'] as bool,
published: json['published'] == null
? null
: DateTime.parse(json['published'] as String),
updated: json['updated'] == null
? null
: DateTime.parse(json['updated'] as String),
deleted: json['deleted'] as bool,
apId: json['ap_id'] as String,
local: json['local'] as bool,
communityId: json['community_id'] as int,
communityActorId: json['community_actor_id'] as String,
communityLocal: json['community_local'] as bool,
communityName: json['community_name'] as String,
communityIcon: json['community_icon'] as String,
banned: json['banned'] as bool,
bannedFromCommunity: json['banned_from_community'] as bool,
creatorActorId: json['creator_actor_id'] as String,
creatorLocal: json['creator_local'] as bool,
creatorName: json['creator_name'] as String,
creatorPreferredUsername: json['creator_preferred_username'] as String,
creatorAvatar: json['creator_avatar'] as String,
creatorPublished: json['creator_published'] == null
? null
: DateTime.parse(json['creator_published'] as String),
score: json['score'] as int,
upvotes: json['upvotes'] as int,
downvotes: json['downvotes'] as int,
hotRank: json['hot_rank'] as int,
hotRankActive: json['hot_rank_active'] as int,
userId: json['user_id'] as int,
myVote: json['my_vote'] as int,
subscribed: json['subscribed'] as bool,
saved: json['saved'] as bool,
recipientId: json['recipient_id'] as int,
);
}