diff --git a/Sources/dafl_project_flutter/assets/logs.txt b/Sources/dafl_project_flutter/assets/logs.txt new file mode 100644 index 0000000..2dce090 --- /dev/null +++ b/Sources/dafl_project_flutter/assets/logs.txt @@ -0,0 +1,4 @@ +postgres +mdpDaflBd +89.83.54.48 +BD-DaflMusic \ No newline at end of file diff --git a/Sources/dafl_project_flutter/lib/controller/controller.dart b/Sources/dafl_project_flutter/lib/controller/controller.dart index 198299f..7307b8e 100644 --- a/Sources/dafl_project_flutter/lib/controller/controller.dart +++ b/Sources/dafl_project_flutter/lib/controller/controller.dart @@ -1,9 +1,12 @@ +import 'dart:convert'; + import '../model/music.dart'; import '../model/spot.dart'; import '../persistence/database_loader.dart'; import '../persistence/database_saver.dart'; import '../persistence/database_searcher.dart'; import '../persistence/loader.dart'; +import 'package:http/http.dart' as http; import '../persistence/saver.dart'; import '../model/user.dart'; @@ -85,4 +88,30 @@ class Controller { 'https://cdns-images.dzcdn.net/images/cover/17a9747927ac3e5ea56f92f635d9180c/500x500.jpg')), ].reversed.toList(); } + + Future sendEmail(User reporter, User reported, String reason, String message) async{ + const serviceId = 'service_dzyndyb'; + const templateId = 'template_idgriw2'; + const userId = 'hy7HxL5QGV6gpdqry'; + + final url = Uri.parse("https://api.emailjs.com/api/v1.0/email/send"); + final response = await http.post( + url, + headers: { + 'Content-Type': 'application/json', + }, + body: json.encode({ + 'service_id': serviceId, + 'template_id': templateId, + 'user_id': userId, + 'template_params': { + 'from_name': reporter.usernameDafl, + 'to_name': reported.usernameDafl, + 'reason': reason, + 'message': message, + }, + }), + ); + print(response.body); + } } diff --git a/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart b/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart index 9c6c37a..e9fa1dd 100644 --- a/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart +++ b/Sources/dafl_project_flutter/lib/views/pages/main/p_conversation.dart @@ -258,6 +258,8 @@ class _ConversationPageState extends State { } Widget buildSheet() { + String? currentvalue; + final messageTextField = TextEditingController(); return SingleChildScrollView( padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), @@ -319,7 +321,7 @@ class _ConversationPageState extends State { borderRadius: BorderRadius.circular(15), ), child: Column( - children: const [ + children: [ Text( 'Vous ĂȘtes sur le point de signaler cet utilisateur. Veuillez renseigner le motif du signalement.', style: TextStyle(color: Colors.grey), @@ -344,8 +346,8 @@ class _ConversationPageState extends State { borderRadius: BorderRadius.circular(15), ), child: TextField( + controller: messageTextField, keyboardAppearance: Brightness.dark, - onTap: () {}, style: TextStyle( fontFamily: 'DMSans', color: Colors.white.withOpacity(1), @@ -367,12 +369,15 @@ class _ConversationPageState extends State { )), const Spacer(), Padding( - padding: const EdgeInsets.fromLTRB(0, 0, 0, 50), + padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), child: SizedBox( width: double.infinity, height: 70, child: ElevatedButton( - onPressed: () {}, + onPressed: () { + MyApp.controller.sendEmail(MyApp.controller.currentUser, destinataire, currentValue, messageTextField.text); + Navigator.pop(context); + }, style: ElevatedButton.styleFrom( backgroundColor: Colors.red, textStyle: const TextStyle( @@ -407,8 +412,6 @@ class _ConversationPageState extends State { } class DropdownButtonReason extends StatefulWidget { - const DropdownButtonReason({super.key}); - @override State createState() => _DropdownButtonReasonState(); } @@ -420,6 +423,9 @@ const List list = [ "Usurpation d'identitĂ©" ]; +String currentValue = list[0]; + + class _DropdownButtonReasonState extends State { String dropdownValue = list.first; @@ -442,6 +448,7 @@ class _DropdownButtonReasonState extends State { // This is called when the user selects an item. setState(() { dropdownValue = value!; + currentValue = value!; }); }, items: list.map>((String value) {