ltc 1 year ago
parent
commit
5ed7dbd3aa

+ 31 - 0
lib/dao/user_dao.dart

@@ -0,0 +1,31 @@
+import 'package:agora_chat_demo/models/api.dart';
+import 'package:agora_chat_demo/models/user_model.dart';
+import 'package:dio/dio.dart';
+
+class UserDao {
+  Future<UserModel> getUser() async {
+    var response = await Dio().get(Api.user);
+    if (response.statusCode == 200) {
+      return UserModel.fromJson(response.data);
+    } else {
+      throw Exception("Failed to get user");
+    }
+  }
+
+  Future<UserModel> register(
+    String username,
+    String password,
+    String nickname,
+  ) async {
+    var response = await Dio().post(Api.user, data: {
+      "username": username,
+      "password": password,
+      "nickname": nickname,
+    });
+    if (response.statusCode == 200) {
+      return UserModel.fromJson(response.data);
+    } else {
+      throw Exception("Failed to register user");
+    }
+  }
+}

+ 1 - 1
lib/main.dart

@@ -1,4 +1,4 @@
-import 'package:agora_chat_demo/home_page.dart';
+import 'package:agora_chat_demo/pages/home_page.dart';
 import 'package:flutter/material.dart';
 
 void main() {

+ 4 - 0
lib/models/api.dart

@@ -0,0 +1,4 @@
+class Api {
+  static const host = "https://xx.com";
+  static const user = "{$host}/org/app/users";
+}

+ 5 - 0
lib/models/base_model.dart

@@ -0,0 +1,5 @@
+import 'package:flutter/material.dart';
+
+class BaseModel extends ChangeNotifier {
+  
+}

+ 0 - 0
lib/config.dart → lib/models/config.dart


+ 32 - 0
lib/models/user_model.dart

@@ -0,0 +1,32 @@
+import 'package:agora_chat_demo/models/base_model.dart';
+
+class UserModel extends BaseModel {
+  String username;
+  String password;
+  String nickname;
+
+  UserModel(
+      {required this.username, required this.password, required this.nickname});
+
+  UserModel.fromJson(Map<String, dynamic> json)
+      : username = json['username'],
+        password = json['password'],
+        nickname = json['nickname'];
+}
+
+class UserEntity {
+  List<UserModel>? users;
+  int? errorCode;
+  String? errorMsg;
+  UserEntity({this.users, this.errorCode, this.errorMsg});
+  UserEntity.fromJson(Map<String, dynamic> json) {
+    if (json['users'] != null) {
+      users = <UserModel>[];
+      json['users'].forEach((v) {
+        users!.add(UserModel.fromJson(v));
+      });
+    }
+    errorCode = json['errorCode'];
+    errorMsg = json['errorMsg'];
+  }
+}

+ 1 - 1
lib/home_page.dart → lib/pages/home_page.dart

@@ -1,6 +1,6 @@
+import 'package:agora_chat_demo/models/config.dart';
 import 'package:flutter/material.dart';
 import 'package:agora_chat_sdk/agora_chat_sdk.dart';
-import 'package:agora_chat_demo/config.dart';
 
 class HomePage extends StatefulWidget {
   const HomePage({Key? key, required this.title}) : super(key: key);

+ 8 - 0
lib/utils/http_util.dart

@@ -0,0 +1,8 @@
+import 'package:dio/dio.dart';
+
+/// post
+Future post(String url,Map<String, dynamic> params) {
+  // add authorization header
+  
+  return Dio().post(url, data: params);
+}

+ 150 - 1
pubspec.lock

@@ -57,6 +57,14 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.5"
+  dio:
+    dependency: "direct main"
+    description:
+      name: dio
+      sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.0.6"
   fake_async:
     dependency: transitive
     description:
@@ -65,6 +73,22 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.1"
+  ffi:
+    dependency: transitive
+    description:
+      name: ffi
+      sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.2"
+  file:
+    dependency: transitive
+    description:
+      name: file
+      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "6.1.4"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -83,6 +107,11 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_web_plugins:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.0"
   http:
     dependency: "direct main"
     description:
@@ -147,6 +176,110 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.3"
+  path_provider_linux:
+    dependency: transitive
+    description:
+      name: path_provider_linux
+      sha256: ffbb8cc9ed2c9ec0e4b7a541e56fd79b138e8f47d2fb86815f15358a349b3b57
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.11"
+  path_provider_platform_interface:
+    dependency: transitive
+    description:
+      name: path_provider_platform_interface
+      sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.6"
+  path_provider_windows:
+    dependency: transitive
+    description:
+      name: path_provider_windows
+      sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.6"
+  platform:
+    dependency: transitive
+    description:
+      name: platform
+      sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "3.1.0"
+  plugin_platform_interface:
+    dependency: transitive
+    description:
+      name: plugin_platform_interface
+      sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.4"
+  process:
+    dependency: transitive
+    description:
+      name: process
+      sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.2.4"
+  shared_preferences:
+    dependency: "direct main"
+    description:
+      name: shared_preferences
+      sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.1"
+  shared_preferences_android:
+    dependency: transitive
+    description:
+      name: shared_preferences_android
+      sha256: "6478c6bbbecfe9aced34c483171e90d7c078f5883558b30ec3163cf18402c749"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.4"
+  shared_preferences_foundation:
+    dependency: transitive
+    description:
+      name: shared_preferences_foundation
+      sha256: e014107bb79d6d3297196f4f2d0db54b5d1f85b8ea8ff63b8e8b391a02700feb
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.2"
+  shared_preferences_linux:
+    dependency: transitive
+    description:
+      name: shared_preferences_linux
+      sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
+  shared_preferences_platform_interface:
+    dependency: transitive
+    description:
+      name: shared_preferences_platform_interface
+      sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
+  shared_preferences_web:
+    dependency: transitive
+    description:
+      name: shared_preferences_web
+      sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.0"
+  shared_preferences_windows:
+    dependency: transitive
+    description:
+      name: shared_preferences_windows
+      sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.2.0"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -216,6 +349,22 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.4"
+  win32:
+    dependency: transitive
+    description:
+      name: win32
+      sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "4.1.4"
+  xdg_directories:
+    dependency: transitive
+    description:
+      name: xdg_directories
+      sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.0.0"
 sdks:
   dart: ">=3.0.0-0 <4.0.0"
-  flutter: ">=2.0.0"
+  flutter: ">=3.3.0"

+ 3 - 1
pubspec.yaml

@@ -11,7 +11,9 @@ dependencies:
   agora_chat_sdk: ^1.1.0+1
   # agora_rtc_engine: ^6.2.0
   http: ^0.13.4
-
+  dio: ^4.0.6
+  shared_preferences: ^2.1.1
+  
 dev_dependencies:
   flutter_test:
     sdk: flutter