Skip to content

Commit

Permalink
adds moderation in bns nd code refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
swciitg committed Aug 19, 2024
1 parent f200355 commit 8ade2c9
Show file tree
Hide file tree
Showing 87 changed files with 236 additions and 64 deletions.
1 change: 1 addition & 0 deletions lib/functions/ip/ip_decoration.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:onestop_dev/globals/my_colors.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_kit/onestop_kit.dart';

decorationFUnction(String x) {
return InputDecoration(
Expand Down
2 changes: 2 additions & 0 deletions lib/globals/endpoints.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
class Endpoints {
static const moderationBaseUrl =
String.fromEnvironment('MODERATION-SERVER-URL');
static const baseUrl = String.fromEnvironment('SERVER-URL');
static const irbsBaseUrl = String.fromEnvironment('IRBS-SERVER-URL');
static const String restaurantURL = "/getAllOutlets";
Expand Down
22 changes: 13 additions & 9 deletions lib/globals/my_fonts.dart
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
import 'package:flutter/material.dart';
import 'package:onestop_dev/globals/size_config.dart';

class MyFonts {
static const String _fontFamily = 'Montserrat';

static TextStyle get w500 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w500);

static TextStyle get w800 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w800);

static TextStyle get w300 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w300);

static TextStyle get w400 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w400);

static TextStyle get w700 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w700);

static TextStyle get w600 =>
const TextStyle(fontFamily: _fontFamily, fontWeight: FontWeight.w600);
}

extension TextStyleHelpers on TextStyle {
TextStyle setColor(Color color) => copyWith(color: color);
TextStyle factor(double factor) =>
copyWith(fontSize: factor * SizeConfig.verticalBlockSize!);
TextStyle size(double size) => copyWith(fontSize: size);
TextStyle letterSpace(double space) => copyWith(letterSpacing: space);
TextStyle setHeight(double space) => copyWith(height: space);
}
// extension TextStyleHelpers on TextStyle {
// TextStyle setColor(Color color) => copyWith(color: color);
// TextStyle factor(double factor) =>
// copyWith(fontSize: factor * SizeConfig.verticalBlockSize!);
// TextStyle size(double size) => copyWith(fontSize: size);
// TextStyle letterSpace(double space) => copyWith(letterSpacing: space);
// TextStyle setHeight(double space) => copyWith(height: space);
// }
64 changes: 48 additions & 16 deletions lib/pages/buy_sell/buy_form.dart
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
import 'dart:async';

import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:onestop_dev/globals/my_colors.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_dev/pages/home/home.dart';
import 'package:onestop_dev/services/api.dart';
import 'package:onestop_dev/services/moderation_service.dart';
import 'package:onestop_dev/stores/login_store.dart';
import 'package:onestop_dev/widgets/buy_sell/buy_sell_field.dart';
import 'package:onestop_dev/widgets/lostfound/new_page_button.dart';
import 'package:onestop_dev/widgets/lostfound/progress_bar.dart';
import 'package:onestop_dev/services/api.dart';
import 'package:onestop_kit/onestop_kit.dart';

class BuySellForm extends StatefulWidget {
static const id = "/buySellForm";
final String category;
final String imageString;
final String? submittedAt;

const BuySellForm(
{Key? key,
required this.category,
Expand Down Expand Up @@ -160,6 +165,36 @@ class _BuySellFormState extends State<BuySellForm> {
data['email'] = LoginStore.userData["outlookEmail"]!;
data['total_price'] = "${_price.text}-${_price2.text}";

try {
final isTitleValid =
await ModerationService().validateBuyOrSell(_title.text.trim());
if (!isTitleValid) {
Fluttertoast.showToast(
msg: 'Please Enter an appropriate title!',
backgroundColor: OneStopColors.cardColor2.withOpacity(0.7));
dbSavingController.sink.add(false);
savingToDB = false;
setState(() {
isLoading = false;
});
return;
}

final isDescValid = await ModerationService()
.validateBuyOrSell(_description.text.trim());
if (!isDescValid) {
Fluttertoast.showToast(
msg: 'Please Enter an appropriate description!',
backgroundColor: OneStopColors.cardColor2.withOpacity(0.7));
dbSavingController.sink.add(false);
savingToDB = false;
setState(() {
isLoading = false;
});
return;
}
} catch (e) {}

try {
if (widget.category == "Sell") {
res = await APIService().postSellData(data);
Expand All @@ -182,11 +217,10 @@ class _BuySellFormState extends State<BuySellForm> {

if (!mounted) return;
if (responseBody["saved_successfully"] == true) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
"Saved data successfully",
style: MyFonts.w500,
)));
Fluttertoast.showToast(
msg: "Request posted successfully!",
backgroundColor: OneStopColors.cardColor2.withOpacity(0.7),
);
Navigator.popUntil(context, ModalRoute.withName(HomePage.id));
} else {
dbSavingController.sink.add(false);
Expand All @@ -195,21 +229,19 @@ class _BuySellFormState extends State<BuySellForm> {
isLoading = false;
});
if (responseBody["image_safe"] == false) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
"The chosen image is not safe for work !!",
style: MyFonts.w500,
)));
Fluttertoast.showToast(
msg: "The chosen image is NSFW!",
backgroundColor: OneStopColors.cardColor2.withOpacity(0.7),
);
return;
}
setState(() {
isLoading = false;
});
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
"Some error occured, please try again",
style: MyFonts.w500,
)));
Fluttertoast.showToast(
msg: "Some error occurred! Please try again.",
backgroundColor: OneStopColors.cardColor2.withOpacity(0.7),
);
}
},
child: StreamBuilder(
Expand Down
3 changes: 3 additions & 0 deletions lib/pages/complaints/complaints_page.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import 'package:flutter/material.dart';
import 'package:onestop_dev/functions/utility/show_snackbar.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:url_launcher/url_launcher.dart';

import '../../globals/my_colors.dart';
import '../../globals/my_fonts.dart';

class ComplaintsPage extends StatelessWidget {
static const String id = "/all-complaints";

const ComplaintsPage({super.key});

@override
Expand Down
2 changes: 2 additions & 0 deletions lib/pages/contact/contact.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:collection';

import 'package:alphabet_scroll_view/alphabet_scroll_view.dart';
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/material.dart';
Expand All @@ -12,6 +13,7 @@ import 'package:onestop_dev/stores/contact_store.dart';
import 'package:onestop_dev/widgets/contact/contact_page_button.dart';
import 'package:onestop_dev/widgets/contact/contact_search_bar.dart';
import 'package:onestop_dev/widgets/ui/list_shimmer.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:provider/provider.dart';

import 'contact_detail.dart';
Expand Down
3 changes: 3 additions & 0 deletions lib/pages/contact/contact_detail.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ import 'package:onestop_dev/models/contacts/contact_model.dart';
import 'package:onestop_dev/stores/contact_store.dart';
import 'package:onestop_dev/widgets/contact/contact_dialog.dart';
import 'package:onestop_dev/widgets/contact/contact_display.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:provider/provider.dart';

class ContactDetailsPage extends StatefulWidget {
final String title;
final ContactModel? contact;

const ContactDetailsPage({Key? key, this.contact, required this.title})
: super(key: key);

@override
State<ContactDetailsPage> createState() => _ContactDetailsPageState();
}
Expand Down
1 change: 1 addition & 0 deletions lib/pages/elections/register_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:onestop_dev/functions/utility/show_snackbar.dart';
import 'package:onestop_dev/pages/elections/voter_card.dart';
import 'package:onestop_dev/widgets/ui/list_shimmer.dart';
import 'package:onestop_kit/onestop_kit.dart';

import '../../globals/my_colors.dart';
import '../../globals/my_fonts.dart';
Expand Down
1 change: 1 addition & 0 deletions lib/pages/elections/voter_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:onestop_dev/globals/my_colors.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_kit/onestop_kit.dart';

import '../../widgets/ui/list_shimmer.dart';

Expand Down
1 change: 1 addition & 0 deletions lib/pages/food/food_tab.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:onestop_dev/widgets/food/mess/mess_menu.dart';
import 'package:onestop_dev/widgets/food/outlets_filter.dart';
import 'package:onestop_dev/widgets/food/restaurant/restaurant_tile.dart';
import 'package:onestop_dev/widgets/ui/list_shimmer.dart';
import 'package:onestop_kit/onestop_kit.dart';

class FoodTab extends StatelessWidget {
const FoodTab({Key? key}) : super(key: key);
Expand Down
1 change: 1 addition & 0 deletions lib/pages/food/restaurant_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:onestop_dev/stores/restaurant_store.dart';
import 'package:onestop_dev/widgets/food/restaurant/food_tile.dart';
import 'package:onestop_dev/widgets/food/restaurant/restaurant_header.dart';
import 'package:onestop_dev/widgets/ui/appbar.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:provider/provider.dart';

import '../../models/food/restaurant_model.dart';
Expand Down
2 changes: 2 additions & 0 deletions lib/pages/food/search_results.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ import 'package:onestop_dev/stores/restaurant_store.dart';
import 'package:onestop_dev/widgets/food/food_search_bar.dart';
import 'package:onestop_dev/widgets/food/restaurant/restaurant_tile.dart';
import 'package:onestop_dev/widgets/ui/appbar.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:provider/provider.dart';

import '../../widgets/ui/list_shimmer.dart';

class SearchPage extends StatelessWidget {
const SearchPage({Key? key}) : super(key: key);
static String id = "/foodSearchResults";

@override
Widget build(BuildContext context) {
return Scaffold(
Expand Down
1 change: 1 addition & 0 deletions lib/pages/home/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import 'package:onestop_dev/pages/travel/travel.dart';
import 'package:onestop_dev/stores/mapbox_store.dart';
import 'package:onestop_dev/widgets/ui/appbar.dart';
import 'package:onestop_dev/widgets/ui/onestop_upgrade.dart';
import 'package:onestop_kit/onestop_kit.dart';
import 'package:provider/provider.dart';

import '../../widgets/home/home_drawer.dart';
Expand Down
3 changes: 3 additions & 0 deletions lib/pages/ip/ip_carousel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:onestop_dev/globals/my_colors.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_dev/pages/ip/ip_settings.dart';
import 'package:onestop_dev/widgets/ip/ip_input.dart';
import 'package:onestop_kit/onestop_kit.dart';

List<String> textData = [
'Open Start-> Control Panel -> Network and Internet-> Network and Sharing Center ',
Expand All @@ -23,7 +24,9 @@ bool fg = true;

class RouterPage extends StatefulWidget {
static const String id = "/ip";

const RouterPage({Key? key}) : super(key: key);

@override
State<RouterPage> createState() => _RouterPageState();
}
Expand Down
2 changes: 2 additions & 0 deletions lib/pages/login/blocked.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import 'package:flutter/material.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_kit/onestop_kit.dart';

class BlockedPage extends StatelessWidget {
static const String id = "/blocked";

const BlockedPage({super.key});

@override
Expand Down
3 changes: 2 additions & 1 deletion lib/pages/notifications/notification_settings.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:flutter/material.dart';
import 'package:onestop_dev/globals/database_strings.dart';
import 'package:onestop_dev/globals/my_colors.dart';
import 'package:onestop_dev/globals/my_fonts.dart';
import 'package:onestop_dev/services/api.dart';
import 'package:onestop_dev/stores/login_store.dart';
import 'package:onestop_dev/widgets/notifications/notif_toggle.dart';
import 'package:fluentui_system_icons/fluentui_system_icons.dart';
import 'package:onestop_kit/onestop_kit.dart';

class NotificationSettings extends StatefulWidget {
const NotificationSettings({Key? key}) : super(key: key);
Expand Down
35 changes: 18 additions & 17 deletions lib/pages/services/gc_scoreboard.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
// import 'package:flutter/material.dart';
// import 'package:onestop_dev/stores/login_store.dart';
// import 'package:scoreboard/scoreboard.dart';
//
// class Scoreboard extends StatelessWidget {
// static const String id = "/gc_score_board";
// const Scoreboard({Key? key}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// return GCScoreBoard(userInfo: {
// "name": LoginStore.userData["name"],
// "rollno": LoginStore.userData["rollNo"],
// "email": LoginStore.userData["outlookEmail"]
// });
// }
// }
import 'package:flutter/material.dart';
import 'package:onestop_dev/stores/login_store.dart';
import 'package:scoreboard/scoreboard.dart';

class Scoreboard extends StatelessWidget {
static const String id = "/gc_score_board";

const Scoreboard({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return GCScoreBoard(userInfo: {
"name": LoginStore.userData["name"],
"rollno": LoginStore.userData["rollNo"],
"email": LoginStore.userData["outlookEmail"]
});
}
}
3 changes: 3 additions & 0 deletions lib/pages/upsp/upsp.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import 'package:onestop_dev/widgets/lostfound/progress_bar.dart';
import 'package:onestop_dev/widgets/upsp/checkbox_list.dart';
import 'package:onestop_dev/widgets/upsp/file_tile.dart';
import 'package:onestop_dev/widgets/upsp/upload_button.dart';
import 'package:onestop_kit/onestop_kit.dart';

import 'details_upsp.dart';

const List<String> boards = [
Expand All @@ -34,6 +36,7 @@ const List<String> subcommittees = [

class Upsp extends StatefulWidget {
static const String id = "/upsp";

const Upsp({Key? key}) : super(key: key);

@override
Expand Down
3 changes: 2 additions & 1 deletion lib/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import 'package:onestop_dev/pages/login/splash.dart';
import 'package:onestop_dev/pages/lost_found/lnf_home.dart';
import 'package:onestop_dev/pages/notifications/notifications.dart';
import 'package:onestop_dev/pages/services/cab_share.dart';
import 'package:onestop_dev/pages/services/gc_scoreboard.dart';
import 'package:onestop_dev/pages/services/irbs.dart';
import 'package:onestop_dev/pages/services/gate_log_page.dart';
import 'package:onestop_dev/pages/upsp/upsp.dart';
Expand All @@ -30,7 +31,7 @@ final routes = {
BuySellHome.id: (context) => const BuySellHome(),
CabShare.id: (context) => const CabShare(),
NotificationPage.id: (context) => const NotificationPage(),
// Scoreboard.id: (context) => const Scoreboard(),
Scoreboard.id: (context) => const Scoreboard(),
Upsp.id: (context) => const Upsp(),
ComplaintsPage.id: (context) => const ComplaintsPage(),
MessOpiFormPage.id: (context) => const MessOpiFormPage(),
Expand Down
12 changes: 12 additions & 0 deletions lib/services/moderation_service.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import 'package:dio/dio.dart';
import 'package:onestop_dev/globals/endpoints.dart';

class ModerationService {
final _dio = Dio(BaseOptions(baseUrl: Endpoints.moderationBaseUrl));

Future<bool> validateBuyOrSell(String text) async {
final res = await _dio.post('/validateBuyOrSell', data: {'request': text});

return res.data['valid'];
}
}
Loading

0 comments on commit 8ade2c9

Please sign in to comment.