Skip to content

Commit

Permalink
Merge pull request #143 from just-ary27/main
Browse files Browse the repository at this point in the history
Fix #138
  • Loading branch information
Samuel Rosado committed Dec 14, 2022
2 parents 28000c8 + ca30b8f commit 1985e1d
Show file tree
Hide file tree
Showing 10 changed files with 195 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-flutter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ jobs:
with:
flutter-version: '2.10.4'
- run: flutter pub get
- run: flutter analyze
- run: flutter analyze --no-fatal-infos
- run: flutter build apk
30 changes: 30 additions & 0 deletions lib/src/components/issueflag.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

class IssueFlagButton extends ConsumerStatefulWidget {
const IssueFlagButton({Key? key}) : super(key: key);

@override
ConsumerState<ConsumerStatefulWidget> createState() =>
_IssueFlagButtonState();
}

class _IssueFlagButtonState extends ConsumerState<IssueFlagButton> {
@override
Widget build(BuildContext context) {
return Container(
width: 25,
child: Row(
children: [
IconButton(
onPressed: () {},
icon: Icon(
Icons.bookmark,
),
),
Text(""),
],
),
);
}
}
30 changes: 30 additions & 0 deletions lib/src/components/issuelike.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

class IssueLikeButton extends ConsumerStatefulWidget {
const IssueLikeButton({Key? key}) : super(key: key);

@override
ConsumerState<ConsumerStatefulWidget> createState() =>
_IssueLikeButtonState();
}

class _IssueLikeButtonState extends ConsumerState<IssueLikeButton> {
@override
Widget build(BuildContext context) {
return Container(
width: 25,
child: Row(
children: [
IconButton(
onPressed: () {},
icon: Icon(
Icons.favorite,
),
),
Text(""),
],
),
);
}
}
4 changes: 3 additions & 1 deletion lib/src/pages/home/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import 'package:bugheist/src/pages/home/report_bug.dart';
import 'package:bugheist/src/providers/authstate_provider.dart';
import 'package:bugheist/src/providers/login_provider.dart';
import 'package:bugheist/src/routes/routing.dart';
import 'package:bugheist/src/util/api/issues_api.dart';
import 'package:bugheist/src/util/enums/login_type.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
Expand Down Expand Up @@ -152,10 +153,11 @@ class _HomeState extends ConsumerState<Home> {
),
ListTile(
title: Text('Social'),
onTap: () {
onTap: () async {
// Update the state of the app
// ...
// Then close the drawer
await IssueApiClient.toggleIssueFlag(2046);
Navigator.pop(context);
},
),
Expand Down
16 changes: 16 additions & 0 deletions lib/src/providers/issuelikeflag_provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:flutter_riverpod/flutter_riverpod.dart';

final issueLikeProvider = StateNotifierProvider<IssueLikeNotifier, Map>(
((ref) => IssueLikeNotifier(ref.read)),
);
var issueFlagProvider;

class IssueLikeNotifier extends StateNotifier<Map> {
final Reader read;
Map? previousState;

IssueLikeNotifier(this.read, [Map? likeState])
: super(likeState ?? {'likeCount': 0, 'liked': false});
}

class IssueFlagNotifier {}
5 changes: 5 additions & 0 deletions lib/src/util/api/auth_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import 'package:bugheist/src/util/endpoints/auth_endpoints.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

import '../../global/variables.dart';

/// Class for accessing the auth client.
class AuthApiClient {
AuthApiClient._();
Expand Down Expand Up @@ -39,6 +41,9 @@ class AuthApiClient {
try {
response = await http.post(
Uri.parse(AuthEndPoints.logout),
headers: {
"Authorization": "Token ${currentUser!.token!}",
},
);
print(response.statusCode);
if (response.statusCode == 200) isLoggedOut = true;
Expand Down
89 changes: 89 additions & 0 deletions lib/src/util/api/issues_api.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'dart:convert';
import 'package:bugheist/src/global/variables.dart';
import 'package:bugheist/src/routes/routing.dart';
import 'package:bugheist/src/util/endpoints/issue_endpoints.dart';
import 'package:flutter/material.dart';
Expand Down Expand Up @@ -145,6 +146,94 @@ class IssueApiClient {
}
}

static Future<int?> getIssueLikes(int id) async {
http.Response? response;
int? likeCount;
try {
response = await http.get(
Uri.parse(IssueEndPoints.likeIssues + "$id/"),
headers: {
"Authorization": "Token ${currentUser!.token!}",
},
);
if (response.statusCode == 200) {
var decodedResponse = jsonDecode(utf8.decode(response.bodyBytes));
likeCount = decodedResponse["likes"];
}
} catch (e) {
print(e);
}
return likeCount;
}

static Future<bool?> toggleIssueLikes(int id) async {
http.Response? response;
bool? liked;
try {
response = await http.post(
Uri.parse(IssueEndPoints.likeIssues + "$id/"),
headers: {
"Authorization": "Token ${currentUser!.token!}",
},
);
if (response.statusCode == 200) {
var decodedResponse = jsonDecode(utf8.decode(response.bodyBytes));
if (decodedResponse["issue"] == "liked") {
liked = true;
} else if (decodedResponse["issue"] == "unliked") {
liked = false;
}
}
} catch (e) {
print(e);
}
return liked;
}

static Future getIssueFlag(int id) async {
http.Response? response;
int? flagCount;
try {
response = await http.get(
Uri.parse(IssueEndPoints.flagIssues + "$id/"),
headers: {
"Authorization": "Token ${currentUser!.token!}",
},
);
if (response.statusCode == 200) {
var decodedResponse = jsonDecode(utf8.decode(response.bodyBytes));
flagCount = decodedResponse["flags"];
}
} catch (e) {
print("e");
}
return flagCount;
}

static Future toggleIssueFlag(int id) async {
http.Response? response;
bool? flagged;
try {
response = await http.post(
Uri.parse(IssueEndPoints.flagIssues + "$id/"),
headers: {
"Authorization": "Token ${currentUser!.token!}",
},
);
if (response.statusCode == 200) {
var decodedResponse = jsonDecode(utf8.decode(response.bodyBytes));
if (decodedResponse["issue"] == "liked") {
flagged = true;
} else if (decodedResponse["issue"] == "unliked") {
flagged = false;
}
}
} catch (e) {
print(e);
}
return flagged;
}

static Future getAllUserIssues() async {}

static Future getUserIssueById() async {}
Expand Down
12 changes: 7 additions & 5 deletions lib/src/util/endpoints/auth_endpoints.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@
class AuthEndPoints {
AuthEndPoints._();

static const String baseUrl = "https://www.bugheist.com/auth/";
static const String baseUrl = "https://www.bugheist.com/";

static const String emailpasswordLogin = baseUrl + "login/";
static const String baseUrl2 = "https://www.bugheist.com/auth/";

static const String logout = baseUrl + "logout/";
static const String emailpasswordLogin = baseUrl + "authenticate/";

static const String register = baseUrl + "registration/";
static const String logout = baseUrl2 + "logout/";

static const String reset = baseUrl + "password/reset/";
static const String register = baseUrl2 + "registration/";

static const String reset = baseUrl2 + "password/reset/";
}
8 changes: 6 additions & 2 deletions lib/src/util/endpoints/issue_endpoints.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ class IssueEndPoints {

static const String baseUrl = "https://www.bugheist.com/api/v1/";

static const issues = baseUrl + "issues/";
static const String issues = baseUrl + "issues/";

static const userIssues = baseUrl + "userissues/";
static const String userIssues = baseUrl + "userissues/";

static const String likeIssues = baseUrl + "issue/like/";

static const String flagIssues = baseUrl + "issue/flag/";
}
8 changes: 8 additions & 0 deletions windows/flutter/generated_plugins.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_windows
)

list(APPEND FLUTTER_FFI_PLUGIN_LIST
)

set(PLUGIN_BUNDLED_LIBRARIES)

foreach(plugin ${FLUTTER_PLUGIN_LIST})
Expand All @@ -14,3 +17,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin)

foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)

0 comments on commit 1985e1d

Please sign in to comment.