1
+ import 'package:appetizer/domain/models/feedback/appetizer_feedback.dart' ;
1
2
import 'package:appetizer/domain/repositories/feedback_repository.dart' ;
2
3
import 'package:bloc/bloc.dart' ;
3
4
import 'package:equatable/equatable.dart' ;
@@ -10,26 +11,57 @@ class FeedbackPageBloc extends Bloc<FeedbackPageEvent, FeedbackPageState> {
10
11
FeedbackPageBloc ({
11
12
required this .repo,
12
13
}) : super (
13
- const FeedbackPageState .initial (),
14
+ FeedbackPageState .initial (),
14
15
) {
15
16
on < FeedbackPageSubmitEvent > (_onSubmit);
16
17
on < FeedbackPageDescriptionChangedEvent > (_onDescriptionChange);
17
18
}
18
19
19
20
void _onSubmit (
20
- FeedbackPageSubmitEvent event, Emitter <FeedbackPageState > emit) {
21
- // TODO: implement repository call
22
- bool submissionSuccessful = true ;
23
- if (submissionSuccessful) {
21
+ FeedbackPageSubmitEvent event, Emitter <FeedbackPageState > emit) async {
22
+ try {
23
+ List <Map <String , dynamic >> ratings = [
24
+ {"type" : "am" , "stars" : event.rating[0 ]},
25
+ {"type" : "hc" , "stars" : event.rating[1 ]},
26
+ {"type" : "wm" , "stars" : event.rating[2 ]},
27
+ {"type" : "ws" , "stars" : event.rating[3 ]},
28
+ {"type" : "dn" , "stars" : event.rating[4 ]}
29
+ ];
30
+ AppetizerFeedback feedback = AppetizerFeedback (
31
+ id: 0 ,
32
+ title: 'Feedback' ,
33
+ message: event.description,
34
+ timestamp: DateTime .now ().millisecondsSinceEpoch,
35
+ mealId: event.mealId,
36
+ imageUrl: null ,
37
+ dateIssue: DateTime .now ().millisecondsSinceEpoch,
38
+ response: null ,
39
+ ratings: ratings,
40
+ );
41
+ await repo.newFeedback (feedback);
24
42
emit (
25
43
FeedbackPageState (
26
44
rating: event.rating,
27
45
description: event.description,
28
46
submitted: true ,
29
47
error: false ,
48
+ mealId: event.mealId,
49
+ ),
50
+ );
51
+ } catch (e) {
52
+ emit (
53
+ FeedbackPageState (
54
+ rating: event.rating,
55
+ description: event.description,
56
+ submitted: false ,
57
+ error: true ,
58
+ mealId: event.mealId,
30
59
),
31
60
);
32
61
}
62
+
63
+ // bool submissionSuccessful = true;
64
+ // if (submissionSuccessful) {}
33
65
// else {
34
66
// emit(
35
67
// FeedbackPageState(
@@ -51,6 +83,7 @@ class FeedbackPageBloc extends Bloc<FeedbackPageEvent, FeedbackPageState> {
51
83
description: event.description,
52
84
submitted: state.submitted,
53
85
error: state.error,
86
+ mealId: state.mealId,
54
87
),
55
88
);
56
89
}
0 commit comments