-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #154 from Nesteo/inspection-sender
Inspection sender
- Loading branch information
Showing
13 changed files
with
554 additions
and
245 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
lib/backend/services/inspections/inspections_api_service.chopper.dart
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export 'inspectionsender_bloc.dart'; | ||
export 'inspectionsender_event.dart'; | ||
export 'inspectionsender_state.dart'; |
69 changes: 69 additions & 0 deletions
69
lib/blocs/inspectionsender_bloc/inspectionsender_bloc.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
import 'dart:async'; | ||
import 'package:bloc/bloc.dart'; | ||
import 'package:flutter_bloc/flutter_bloc.dart'; | ||
import 'package:nesteo_app/backend/repositories/auth_repository.dart'; | ||
import 'package:nesteo_app/backend/repositories/nestingboxes_repository.dart'; | ||
import 'package:nesteo_app/backend/repositories/inspections_repository.dart'; | ||
import 'package:nesteo_app/blocs/boxdata_bloc/boxdata.dart'; | ||
import 'package:nesteo_app/model/inspection.dart'; | ||
import 'package:nesteo_app/model/nestingbox.dart'; | ||
import 'package:nesteo_app/model/owner.dart'; | ||
import 'package:nesteo_app/model/region.dart'; | ||
import 'package:nesteo_app/model/species.dart'; | ||
import 'package:nesteo_app/model/user.dart'; | ||
import './inspectionsender.dart'; | ||
|
||
class InspectionSenderBloc | ||
extends Bloc<InspectionSenderEvent, InspectionSenderState> { | ||
@override | ||
InspectionSenderState get initialState => WaitingForSend(); | ||
|
||
@override | ||
Stream<InspectionSenderState> mapEventToState( | ||
InspectionSenderEvent event, | ||
) async* { | ||
if (event is SendInspectionEvent && state is WaitingForSend) { | ||
yield SendingInspectionState(); | ||
var inspRepo = InspectionsRepository(event.authBloc); | ||
var authRepo = AuthRepository(event.authBloc); | ||
|
||
User user = await authRepo.getAuth(); | ||
|
||
Inspection response = await inspRepo.addNewInspection( | ||
Inspection( | ||
ageInDays: event.ageInDays, | ||
chickCount: event.chickCount, | ||
comment: event.comment, | ||
condition: event.condition, | ||
containsEggs: event.containsEggs, | ||
eggCount: event.eggCount, | ||
femaleParentBirdDiscovery: event.femaleParent, | ||
maleParentBirdDiscovery: event.maleParent, | ||
hasBeenCleaned: event.cleaned, | ||
inspectedByUser: user, | ||
id: null, | ||
inspectionDate: event.inspectionDate, | ||
justRepaired: event.repaired, | ||
nestingBox: event.nestingBox, | ||
nestingBoxId: event.nestingBox.id, | ||
occupied: event.occupied, | ||
ringedChickCount: event.ringedChickCount, | ||
species: (event.speciesString != null) | ||
? Species(id: null, name: event.speciesString) | ||
: event.species, | ||
hasImage: null, | ||
lastUpdated: null, | ||
), | ||
); | ||
|
||
if (response != null) { | ||
yield InspectionSentState(); | ||
} else { | ||
yield SendErrorState(); | ||
} | ||
} | ||
if (event is NewInspectionDoneEvent) { | ||
yield WaitingForSend(); | ||
} | ||
} | ||
} |
61 changes: 61 additions & 0 deletions
61
lib/blocs/inspectionsender_bloc/inspectionsender_event.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
import 'package:equatable/equatable.dart'; | ||
import 'package:google_maps_flutter/google_maps_flutter.dart'; | ||
import 'package:nesteo_app/blocs/authentication_bloc/authentication_bloc.dart'; | ||
import 'package:nesteo_app/model/nestingbox.dart'; | ||
import 'package:nesteo_app/model/owner.dart'; | ||
import 'package:nesteo_app/model/region.dart'; | ||
import 'package:nesteo_app/model/species.dart'; | ||
|
||
abstract class InspectionSenderEvent extends Equatable { | ||
const InspectionSenderEvent(); | ||
} | ||
|
||
class NewInspectionDoneEvent extends InspectionSenderEvent { | ||
@override | ||
List<Object> get props => null; | ||
} | ||
|
||
class SendInspectionEvent extends InspectionSenderEvent { | ||
final AuthenticationBloc authBloc; | ||
final NestingBox nestingBox; | ||
final String id; | ||
final DateTime inspectionDate; | ||
final String comment; | ||
final bool cleaned; | ||
final bool repaired; | ||
final String condition; | ||
final bool containsEggs; | ||
final int eggCount; | ||
final bool occupied; | ||
final int chickCount; | ||
final int ringedChickCount; | ||
final int ageInDays; | ||
final String femaleParent; | ||
final String maleParent; | ||
final Species species; | ||
final String speciesString; | ||
|
||
SendInspectionEvent( | ||
{this.id, | ||
this.nestingBox, | ||
this.authBloc, | ||
this.inspectionDate, | ||
this.comment, | ||
this.cleaned, | ||
this.repaired, | ||
this.condition, | ||
this.containsEggs, | ||
this.eggCount, | ||
this.occupied, | ||
this.chickCount, | ||
this.ringedChickCount, | ||
this.ageInDays, | ||
this.femaleParent, | ||
this.maleParent, | ||
this.species, | ||
this.speciesString}) | ||
: super(); | ||
|
||
@override | ||
List<Object> get props => null; | ||
} |
28 changes: 28 additions & 0 deletions
28
lib/blocs/inspectionsender_bloc/inspectionsender_state.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import 'package:equatable/equatable.dart'; | ||
|
||
abstract class InspectionSenderState extends Equatable { | ||
const InspectionSenderState(); | ||
} | ||
|
||
class WaitingForSend extends InspectionSenderState { | ||
@override | ||
List<Object> get props => []; | ||
} | ||
|
||
class SendingInspectionState extends InspectionSenderState { | ||
@override | ||
// TODO: implement props | ||
List<Object> get props => null; | ||
} | ||
|
||
class InspectionSentState extends InspectionSenderState { | ||
@override | ||
// TODO: implement props | ||
List<Object> get props => null; | ||
} | ||
|
||
class SendErrorState extends InspectionSenderState { | ||
@override | ||
// TODO: implement props | ||
List<Object> get props => null; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.