refactor: move user class in separate file

Signed-off-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>
This commit is contained in:
Neeraj Gupta 2023-05-23 11:24:35 +05:30
parent b24bf451b6
commit 5aae4f4157
12 changed files with 51 additions and 43 deletions

View file

@ -4,6 +4,7 @@ import 'dart:io';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import "package:photos/models/api/collection/public_url.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_migration/sqflite_migration.dart';

View file

@ -0,0 +1,39 @@
import "dart:convert";
class User {
int? id;
String email;
String? name;
String? role;
User({
this.id,
required this.email,
this.name,
this.role,
});
bool get isViewer => role == null || role?.toUpperCase() == 'VIEWER';
bool get isCollaborator =>
role != null && role?.toUpperCase() == 'COLLABORATOR';
Map<String, dynamic> toMap() {
return {'id': id, 'email': email, 'name': name, 'role': role};
}
static fromMap(Map<String, dynamic>? map) {
if (map == null) return null;
return User(
id: map['id'],
email: map['email'],
name: map['name'],
role: map['role'] ?? 'VIEWER',
);
}
String toJson() => json.encode(toMap());
factory User.fromJson(String source) => User.fromMap(json.decode(source));
}

View file

@ -1,8 +1,8 @@
import 'dart:convert';
import 'dart:core';
import 'package:flutter/foundation.dart';
import "package:photos/models/api/collection/public_url.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/magic_metadata.dart';
class Collection {
@ -279,41 +279,3 @@ class CollectionAttributes {
);
}
}
class User {
int? id;
String email;
String? name;
String? role;
User({
this.id,
required this.email,
this.name,
this.role,
});
bool get isViewer => role == null || role?.toUpperCase() == 'VIEWER';
bool get isCollaborator =>
role != null && role?.toUpperCase() == 'COLLABORATOR';
Map<String, dynamic> toMap() {
return {'id': id, 'email': email, 'name': name, 'role': role};
}
static fromMap(Map<String, dynamic>? map) {
if (map == null) return null;
return User(
id: map['id'],
email: map['email'],
name: map['name'],
role: map['role'] ?? 'VIEWER',
);
}
String toJson() => json.encode(toMap());
factory User.fromJson(String source) => User.fromMap(json.decode(source));
}

View file

@ -23,6 +23,7 @@ import 'package:photos/extensions/list.dart';
import 'package:photos/extensions/stop_watch.dart';
import 'package:photos/models/api/collection/create_request.dart';
import "package:photos/models/api/collection/public_url.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/models/collection_file_item.dart';
import 'package:photos/models/collection_items.dart';

View file

@ -6,6 +6,7 @@ import 'package:photos/db/files_db.dart';
import 'package:photos/ente_theme_data.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/models/api/collection/create_request.dart';
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/models/file.dart';
import 'package:photos/models/files_split.dart';

View file

@ -2,6 +2,7 @@ import 'package:email_validator/email_validator.dart';
import 'package:flutter/material.dart';
import 'package:photos/core/configuration.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/services/collections_service.dart';
import "package:photos/services/user_service.dart";

View file

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:photos/core/configuration.dart';
import 'package:photos/extensions/list.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/theme/ente_theme.dart';
import 'package:photos/ui/components/captioned_text_widget.dart';

View file

@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/services/collections_service.dart';
import 'package:photos/theme/colors.dart';

View file

@ -3,6 +3,7 @@ import 'package:fast_base58/fast_base58.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/collection.dart';
import 'package:photos/services/collections_service.dart';
import 'package:photos/theme/ente_theme.dart';

View file

@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:photos/models/collection.dart';
import "package:photos/models/api/collection/user.dart";
import 'package:photos/theme/colors.dart';
import 'package:photos/theme/ente_theme.dart';
import 'package:tuple/tuple.dart';

View file

@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:photos/ente_theme_data.dart';
import "package:photos/generated/l10n.dart";
import 'package:photos/models/collection.dart';
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/trash_file.dart';
import 'package:photos/theme/colors.dart';
import 'package:photos/ui/sharing/user_avator_widget.dart';

View file

@ -9,8 +9,8 @@ import 'package:photos/core/event_bus.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/db/trash_db.dart';
import 'package:photos/events/files_updated_event.dart';
import 'package:photos/events/local_photos_updated_event.dart';
import 'package:photos/models/collection.dart';
import "package:photos/events/local_photos_updated_event.dart";
import "package:photos/models/api/collection/user.dart";
import 'package:photos/models/file.dart';
import 'package:photos/models/file_type.dart';
import 'package:photos/models/trash_file.dart';