From aaaacade4d34ad5c7ecf7a840db378a4ed28d9dd Mon Sep 17 00:00:00 2001 From: juan Date: Mon, 30 Sep 2024 10:54:10 -0400 Subject: [PATCH] cleaned, and new endpoint --- lib/api_service.dart | 35 +++++++++++++++++------------------ lib/augment.dart | 6 ------ lib/main.dart | 11 +++++++---- lib/structs.dart | 12 ------------ 4 files changed, 24 insertions(+), 40 deletions(-) diff --git a/lib/api_service.dart b/lib/api_service.dart index 4b1a011..312109f 100644 --- a/lib/api_service.dart +++ b/lib/api_service.dart @@ -1,12 +1,10 @@ import 'package:crab_ui/structs.dart'; -import 'package:english_words/english_words.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; import 'dart:ui_web' as ui; -import 'dart:html' as html; import 'augment.dart'; -import 'dart:js' as js; +import 'dart:html' as html; //data structure class MailAddress { @@ -28,17 +26,15 @@ class MailAddress { } } - - class EmailPage extends StatefulWidget { const EmailPage({super.key}); final String title = 'Emails'; @override - State createState() => _EmailPageState(); + State createState() => EmailPageState(); } -class _EmailPageState extends State { +class EmailPageState extends State { List emails = []; void _displayEmailsFromFolder(String folder) async { @@ -46,9 +42,12 @@ class _EmailPageState extends State { try { var url = Uri.http( - '127.0.0.1:3001', 'sorted_threads_by_date', {'folder': folder}); + '127.0.0.1:3001', 'sorted_threads_by_date', + {'folder': folder, + 'limit': '10', + 'offset': '0'}); var response = await http.get(url); - + print(response); if (response.statusCode == 200) { List json = jsonDecode(response.body); for (var item in json.take(1)) { @@ -74,16 +73,15 @@ class _EmailPageState extends State { } Future fetchThreads( - int threadId, - List allEmails) async { + int threadId, List allEmails) async { try { var url = Uri.http('127.0.0.1:3001', 'get_thread', {'id': threadId.toString()}); var response = await http.get(url); - + if (response.statusCode == 200) { Map messagesJson = jsonDecode(response.body); - GetThreadResponse threadResponse = + GetThreadResponse threadResponse = GetThreadResponse.fromJson(messagesJson); allEmails.add(threadResponse); @@ -101,6 +99,7 @@ class _EmailPageState extends State { """; try { + //attaches email after email from a thread for (var id in IDs) { var url = Uri.http('127.0.0.1:3001', 'email', {'id': id}); @@ -108,6 +107,7 @@ class _EmailPageState extends State { if (response.statusCode == 200) { content += response.body; + content += "

new shit




"; } } } catch (e) { @@ -116,7 +116,7 @@ class _EmailPageState extends State { return content; } - Future> _getDrawerItems() async { + Future> getDrawerItems(BuildContext context) async { List drawerItems = []; try { @@ -124,7 +124,7 @@ class _EmailPageState extends State { var response = await http.get(url); drawerItems = List.from(json.decode(response.body)); } catch (e) { - print('_getDrawerItems caught error: $e'); + print('getDrawerItems caught error: $e'); } List drawerWidgets = []; @@ -155,7 +155,7 @@ class _EmailPageState extends State { drawer: Drawer( child: FutureBuilder>( future: - _getDrawerItems(), // call the async function to get the future + getDrawerItems(context), // call the async function to get the future builder: (BuildContext context, AsyncSnapshot> snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { @@ -237,8 +237,7 @@ class EmailListScreen extends StatelessWidget { subject: subject, date: date, id: id, - ) - ), + )), ); }); }, diff --git a/lib/augment.dart b/lib/augment.dart index 94677e3..7b2e566 100644 --- a/lib/augment.dart +++ b/lib/augment.dart @@ -1,12 +1,6 @@ -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:http/http.dart' as http; -import 'dart:convert'; -import 'dart:ui_web' as ui; import 'dart:html' as html; import 'dart:js' as js; -import 'api_service.dart'; class EmailToolbar extends StatefulWidget { final Function(String) onJumpToSpan; diff --git a/lib/main.dart b/lib/main.dart index 3d3658e..cc8a518 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,18 +1,18 @@ import 'package:crab_ui/contact.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; import 'home_page.dart'; import 'api_service.dart'; -import 'dart:html' as html; +import 'login.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); // debugPaintSizeEnabled = true; - runApp(const HyM()); + runApp( HyM()); } class HyM extends StatelessWidget { - const HyM({super.key}); + final AuthService _authService = AuthService(); + HyM({super.key}); @override Widget build(BuildContext context) { @@ -20,8 +20,11 @@ class HyM extends StatelessWidget { debugShowCheckedModeBanner: false, theme: ThemeData.light(), title: 'HyM', + // home: HomeScreen(), home: HomeScreen(), + routes: { + "/login": (context) => const LoginPage(), "/email": (context) => EmailPage(), "/contacts": (context) => ContactsPage(), }, diff --git a/lib/structs.dart b/lib/structs.dart index b428c3c..da22635 100644 --- a/lib/structs.dart +++ b/lib/structs.dart @@ -1,13 +1,4 @@ -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; -import 'dart:convert'; -import 'dart:ui_web' as ui; -import 'dart:html' as html; -import 'augment.dart'; -import 'dart:js' as js; import 'api_service.dart'; -import 'dart:convert'; // For JSON decoding -import 'package:intl/intl.dart'; class GetThreadResponse { @@ -29,13 +20,10 @@ class GetThreadResponse { required this.to, }); factory GetThreadResponse.fromJson(Map json) { - var messagesList = json['messages'] as List; var toList = json['to'] as List; - // var ccList = json['cc'] as List; return GetThreadResponse ( id: json['id'], - // messages: messagesList.map((message) => message.toString()).toList(), messages: List.from(json['messages']), subject: json['subject'], date: DateTime.parse(json['date']),