fromCrud<U, C, P> static method

dynamic fromCrud<U, C, P>({
  1. required FireCrud<U> userCrud(
    1. String uid
    ),
  2. required FireCrud<C> userCapabilitiesCrud(
    1. String uid
    ),
  3. required FireCrud<P> userPrivateCrud(
    1. String uid
    ),
  4. required U onCreateUser(
    1. ArcaneUserInfo user
    ),
  5. required C onCreateUserCapabilities(
    1. ArcaneUserInfo user
    ),
  6. required P onCreateUserPrivate(
    1. ArcaneUserInfo user
    ),
  7. dynamic onUserUpdate(
    1. Map<String, dynamic> user
    )?,
  8. dynamic onUserCapabilitiesUpdate(
    1. Map<String, dynamic> userCapabilities
    )?,
  9. dynamic onUserPrivateUpdate(
    1. Map<String, dynamic> userPrivate
    )?,
})

Implementation

static fromCrud<U, C, P>(
        {required FireCrud<U> Function(String uid) userCrud,
        required FireCrud<C> Function(String uid) userCapabilitiesCrud,
        required FireCrud<P> Function(String uid) userPrivateCrud,
        required U Function(ArcaneUserInfo user) onCreateUser,
        required C Function(ArcaneUserInfo user) onCreateUserCapabilities,
        required P Function(ArcaneUserInfo user) onCreateUserPrivate,
        Function(Map<String, dynamic> user)? onUserUpdate,
        Function(Map<String, dynamic> userCapabilities)?
            onUserCapabilitiesUpdate,
        Function(Map<String, dynamic> userPrivate)? onUserPrivateUpdate}) =>
    ArcaneUserProvider(
      userRef: (uid) => userCrud(uid).collection.doc(uid),
      userCapabilitiesRef: (uid) =>
          userCapabilitiesCrud(uid).collection.doc(uid),
      userPrivateRef: (uid) => userPrivateCrud(uid).collection.doc(uid),
      onCreateUser: (info) => userCrud(info.uid).toMap(onCreateUser(info)),
      onCreateUserCapabilities: (info) => userCapabilitiesCrud(info.uid)
          .toMap(onCreateUserCapabilities(info)),
      onCreateUserPrivate: (info) =>
          userPrivateCrud(info.uid).toMap(onCreateUserPrivate(info)),
      onUserUpdate: onUserUpdate,
      onUserCapabilitiesUpdate: onUserCapabilitiesUpdate,
      onUserPrivateUpdate: onUserPrivateUpdate,
    );