LCOV - code coverage report
Current view: top level - lib/shared/middleware - create_adventure_node_middleware.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 25 25 100.0 %
Date: 2022-03-03 12:16:40 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:redfire/extensions.dart';
       2             : import 'package:redfire/services.dart';
       3             : import 'package:redux/redux.dart';
       4             : 
       5             : import '../../app_state.dart';
       6             : import '../actions/create_adventure_node_action.dart';
       7             : 
       8             : class CreateAdventureNodeMiddleware
       9             :     extends TypedMiddleware<AppState, CreateAdventureNodeAction> {
      10           1 :   CreateAdventureNodeMiddleware()
      11           2 :       : super((store, action, next) async {
      12           1 :           next(action);
      13             : 
      14             :           try {
      15           4 :             var uid = store.state.auth.userData?.uid;
      16             :             if (uid == null) return;
      17             : 
      18           1 :             var service = RedFireLocator.getDatabaseService();
      19             : 
      20           3 :             if (store.state.adventures.selected == null) {
      21           3 :               await service.createDocument(at: 'adventures', from: {
      22           1 :                 'ownerIds': [uid],
      23           1 :                 'name': action.name
      24             :               });
      25             :               return;
      26             :             }
      27             : 
      28           3 :             if (store.state.challenges.selected == null) {
      29           3 :               await service.createDocument(at: 'challenges', from: {
      30           1 :                 'ownerIds': [uid],
      31           1 :                 'name': action.name,
      32           5 :                 'parentIds': [store.state.adventures.selected!.id]
      33             :               });
      34             : 
      35             :               return;
      36             :             }
      37             : 
      38           3 :             if (store.state.tasks.selected == null) {
      39           3 :               await service.createDocument(at: 'tasks', from: {
      40           1 :                 'ownerIds': [uid],
      41           1 :                 'name': action.name,
      42           5 :                 'parentIds': [store.state.challenges.selected!.id]
      43             :               });
      44             : 
      45             :               return;
      46             :             }
      47             : 
      48           3 :             if (store.state.steps.selected == null) {
      49           3 :               await service.createDocument(at: 'steps', from: {
      50           1 :                 'ownerIds': [uid],
      51           1 :                 'name': action.name,
      52           5 :                 'parentIds': [store.state.tasks.selected!.id]
      53             :               });
      54             : 
      55             :               return;
      56             :             }
      57             :           } catch (error, trace) {
      58           1 :             store.dispatchProblem(error, trace);
      59             :           }
      60             :         });
      61             : }

Generated by: LCOV version 1.13