ZeytinXUserModel.fromJson constructor

ZeytinXUserModel.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory ZeytinXUserModel.fromJson(Map<String, dynamic> json) {
  String s(dynamic v) {
    if (v == null) return '';
    return v.toString();
  }

  List<String> l(dynamic v) {
    if (v == null || v is! List) return <String>[];
    return v.map((e) => e.toString()).toList().cast<String>();
  }

  return ZeytinXUserModel(
    username: s(json['username']),
    uid: s(json['uid']),
    email: s(json['email']),
    school: s(json['school']),
    job: s(json['job']),
    emailVerified: s(json['email_verified']),
    password: s(json['password']),
    blockedUsers: l(json['blockedUsers']),
    role: s(json['role']),
    firstName: s(json['first_name']),
    lastName: s(json['last_name']),
    displayName: s(json['display_name']),
    avatarUrl: s(json['avatar_url']),
    gender: s(json['gender']),
    dateOfBirth: s(json['date_of_birth']),
    biography: s(json['biography']),
    preferredLanguage: s(json['preferred_language']),
    timezone: s(json['timezone']),
    accountStatus: s(json['account_status']),
    accountUpdated: s(json['account_updated']),
    accountCreation: s(json['account_creation']),
    accountType: s(json['account_type']),
    lastLoginTimestamp: s(json['last_login_timestamp']),
    lastLoginIp: s(json['last_login_ip']),
    socialMedias: l(json['social_medias']),
    followers: l(json['followers']),
    following: l(json['following']),
    theme: s(json['theme']),
    street: s(json['street']),
    city: s(json['city']),
    postalCode: s(json['postal_code']),
    country: s(json['country']),
    locale: s(json['locale']),
    posts: l(json['posts']),
    createdBy: s(json['created_by']),
    updatedBy: s(json['updated_by']),
    version: s(json['version']),
    data: json['data'] is Map ? Map<String, dynamic>.from(json['data']) : {},
  );
}