This commit is contained in:
Sai Naw Wun
2020-10-07 02:33:06 +06:30
parent 01a2798a74
commit 65dda16fe6
475 changed files with 1543 additions and 90780 deletions

View File

@@ -0,0 +1,68 @@
import 'package:fcs/data/provider/auth_fb.dart';
import 'package:fcs/domain/entities/auth_result.dart';
import 'package:fcs/domain/entities/connectivity.dart';
import 'package:fcs/domain/entities/setting.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:flutter/material.dart';
import 'auth_service.dart';
class AuthServiceImp implements AuthService {
AuthServiceImp({
@required this.authFb,
@required this.connectivity,
});
final Connectivity connectivity;
final AuthFb authFb;
@override
Future<AuthResult> sendSmsCodeToPhoneNumber(String phoneNumber) {
return authFb.sendSmsCodeToPhoneNumber(phoneNumber);
}
@override
Future<AuthResult> signInWithSmsCode(String smsCode) {
return authFb.signInWithPhoneNumber(smsCode);
}
@override
Future<void> signout() {
return authFb.signout();
}
@override
Stream<User> getUserStream() {
return authFb.user();
}
@override
Stream<Setting> getSetting() {
return authFb.settings();
}
@override
Future<void> signup(String userName) {
return authFb.signup(userName);
}
@override
Future<User> joinInvite(String userName) {
return authFb.joinInvite(userName);
}
@override
Future<String> getToken() {
return authFb.getToken();
}
@override
Future<bool> hasInvite() {
return authFb.hasInvite();
}
@override
Future<void> updateProfile(String newUserName) {
return authFb.updateProfile(newUserName);
}
}

View File

@@ -0,0 +1,16 @@
import 'package:fcs/domain/entities/auth_result.dart';
import 'package:fcs/domain/entities/setting.dart';
import 'package:fcs/domain/entities/user.dart';
abstract class AuthService {
Future<AuthResult> sendSmsCodeToPhoneNumber(String phoneNumber);
Future<AuthResult> signInWithSmsCode(String smsCode);
Future<void> signout();
Future<void> signup(String userName);
Future<User> joinInvite(String userName);
Future<void> updateProfile(String newUserName);
Future<bool> hasInvite();
Stream<User> getUserStream();
Stream<Setting> getSetting();
Future<String> getToken();
}

View File

@@ -0,0 +1,40 @@
import 'package:fcs/data/provider/common_data_provider.dart';
import 'package:fcs/data/provider/user_data_provider.dart';
import 'package:fcs/domain/entities/payment_method.dart';
import 'package:fcs/domain/vo/message.dart';
import 'package:flutter/material.dart';
import 'common_service.dart';
class CommonServiceImp implements CommonService {
CommonServiceImp({
@required this.commonDataProvider,
});
final CommonDataProvider commonDataProvider;
@override
Future<void> createPaymentMethod(PaymentMethod paymentMethod) {
return commonDataProvider.createPaymentMethod(paymentMethod);
}
@override
Future<void> deletePayment(String id) {
return commonDataProvider.deletePaymentMethod(id);
}
@override
Future<void> updatePaymentMethod(PaymentMethod paymentMethod) {
return commonDataProvider.updatePaymentMethod(paymentMethod);
}
@override
Future<void> sendMessage(Message message) {
return commonDataProvider.sendMessage(message);
}
@override
Future<void> seenMessage(String ownerID, bool seenByOwner) {
return commonDataProvider.seenMessage(ownerID, seenByOwner);
}
}

View File

@@ -0,0 +1,13 @@
import 'package:fcs/domain/entities/payment_method.dart';
import 'package:fcs/domain/vo/message.dart';
abstract class CommonService {
// Payment
Future<void> createPaymentMethod(PaymentMethod paymentMethod);
Future<void> updatePaymentMethod(PaymentMethod paymentMethod);
Future<void> deletePayment(String id);
// Messaging
Future<void> sendMessage(Message message);
Future<void> seenMessage(String ownerID, bool seenByOwner);
}

View File

@@ -0,0 +1,28 @@
import 'package:fcs/data/provider/messaging_fcm.dart';
import 'messaging_service.dart';
class MessagingServiceImp implements MessagingService {
MessagingServiceImp();
static MessagingFCM messagingFCM;
@override
void init(onMessage,
{OnNotify onLaunch, OnNotify onResume, OnSetupComplete onSetupComplete}) {
messagingFCM = MessagingFCM(onMessage,
onLaunch: onLaunch,
onResume: onResume,
onSetupComplete: onSetupComplete);
}
@override
Future<void> subscribe(String topic) {
return messagingFCM.unsubscribeToTopic(topic);
}
@override
Future<void> unsubscribe(String topic) {
return messagingFCM.unsubscribeToTopic(topic);
}
}

View File

@@ -0,0 +1,9 @@
typedef OnNotify(Map<String, dynamic> message);
typedef OnSetupComplete(String token);
abstract class MessagingService {
void init(OnNotify onMessage,
{OnNotify onLaunch, OnNotify onResume, OnSetupComplete onSetupComplete});
Future<void> subscribe(String topic);
Future<void> unsubscribe(String topic);
}

View File

@@ -0,0 +1,31 @@
import 'package:fcs/data/provider/package_data_provider.dart';
import 'package:fcs/domain/entities/connectivity.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:flutter/material.dart';
import 'package_service.dart';
class PackageServiceImp implements PackageService {
PackageServiceImp({
@required this.connectivity,
@required this.packageDataProvider,
});
final Connectivity connectivity;
final PackageDataProvider packageDataProvider;
@override
Future<void> createPackages(List<Package> packages, String fcsID) {
return packageDataProvider.createPackages(packages, fcsID);
}
@override
Future<List<Package>> searchPackage(String term) {
return packageDataProvider.searchPackage(term);
}
@override
Future<void> deletePackage(Package package) {
return packageDataProvider.deletePackage(package);
}
}

View File

@@ -0,0 +1,7 @@
import 'package:fcs/domain/entities/package.dart';
abstract class PackageService {
Future<void> createPackages(List<Package> packages, String fcsID);
Future<void> deletePackage(Package package);
Future<List<Package>> searchPackage(String term);
}

View File

@@ -0,0 +1,43 @@
import 'package:fcs/data/provider/auth_fb.dart';
import 'package:fcs/data/provider/common_data_provider.dart';
import 'package:fcs/data/provider/package_data_provider.dart';
import 'package:fcs/data/provider/user_data_provider.dart';
import 'auth_imp.dart';
import 'auth_service.dart';
import 'common_imp.dart';
import 'common_service.dart';
import 'messaging_imp.dart';
import 'messaging_service.dart';
import 'package_imp.dart';
import 'package_service.dart';
import 'user_imp.dart';
import 'user_service.dart';
class Services {
static final Services instance = Services._();
AuthService _authService;
UserService _userService;
PackageService _packageService;
MessagingService _messagingService;
CommonService _commonService;
Services._() {
_authService = AuthServiceImp(
authFb: AuthFb.instance,
connectivity: null,
);
_userService = UserServiceImp(
connectivity: null, userDataProvider: UserDataProvider());
_messagingService = MessagingServiceImp();
_packageService = PackageServiceImp(
connectivity: null, packageDataProvider: PackageDataProvider());
_commonService = CommonServiceImp(commonDataProvider: CommonDataProvider());
}
AuthService get authService => _authService;
UserService get userService => _userService;
MessagingService get messagingService => _messagingService;
PackageService get packageService => _packageService;
CommonService get commonService => _commonService;
}

View File

@@ -0,0 +1,51 @@
import 'package:fcs/data/provider/user_data_provider.dart';
import 'package:fcs/domain/entities/connectivity.dart';
import 'package:fcs/domain/entities/user.dart';
import 'package:flutter/material.dart';
import 'user_service.dart';
class UserServiceImp implements UserService {
UserServiceImp({
@required this.connectivity,
@required this.userDataProvider,
});
final Connectivity connectivity;
final UserDataProvider userDataProvider;
@override
Future<void> inviteUser(String userName, String phoneNumber) {
return userDataProvider.inviteUser(userName, phoneNumber);
}
@override
Future<void> deleteInvite(String phoneNumber) {
return userDataProvider.deleteInvite(phoneNumber);
}
@override
Future<void> acceptRequest(String userID) {
return userDataProvider.acceptRequest(userID);
}
@override
Future<User> findUser(String phoneNumber) {
return userDataProvider.findUser(phoneNumber);
}
@override
Future<List<User>> searchUser(String term) {
return userDataProvider.searchUser(term);
}
@override
Future<void> removeMsgToken(String token) {
return userDataProvider.removeMsgToken(token);
}
@override
Future<void> uploadMsgToken(String token) {
return userDataProvider.uploadMsgToken(token);
}
}

View File

@@ -0,0 +1,11 @@
import 'package:fcs/domain/entities/user.dart';
abstract class UserService {
Future<void> inviteUser(String userName, String phoneNumber);
Future<void> deleteInvite(String phoneNumber);
Future<void> acceptRequest(String userID);
Future<User> findUser(String phoneNumber);
Future<List<User>> searchUser(String term);
Future<void> uploadMsgToken(String token);
Future<void> removeMsgToken(String token);
}