Search in sources :

Example 1 with UserRecord

use of com.google.firebase.auth.UserRecord in project mxisd by kamax-io.

the class GoogleFirebaseProvider method findInternal.

private Optional<UserRecord> findInternal(String medium, String address) {
    final UserRecord[] r = new UserRecord[1];
    CountDownLatch l = new CountDownLatch(1);
    OnSuccessListener<UserRecord> success = result -> {
        log.info("Found 3PID match for {}:{} - UID is {}", medium, address, result.getUid());
        r[0] = result;
        l.countDown();
    };
    OnFailureListener failure = e -> {
        log.info("No 3PID match for {}:{} - {}", medium, address, e.getMessage());
        r[0] = null;
        l.countDown();
    };
    if (ThreePidMedium.Email.is(medium)) {
        log.info("Performing E-mail 3PID lookup for {}", address);
        getFirebase().getUserByEmail(address).addOnSuccessListener(success).addOnFailureListener(failure);
        waitOnLatch(l);
    } else if (ThreePidMedium.PhoneNumber.is(medium)) {
        log.info("Performing msisdn 3PID lookup for {}", address);
        getFirebase().getUserByPhoneNumber(address).addOnSuccessListener(success).addOnFailureListener(failure);
        waitOnLatch(l);
    } else {
        log.info("{} is not a supported 3PID medium", medium);
        r[0] = null;
    }
    return Optional.ofNullable(r[0]);
}
Also used : ThreePidMedium(io.kamax.matrix.ThreePidMedium) SingleLookupReply(io.kamax.mxisd.lookup.SingleLookupReply) Logger(org.slf4j.Logger) MxisdConfig(io.kamax.mxisd.config.MxisdConfig) ThreePidMapping(io.kamax.mxisd.lookup.ThreePidMapping) OnSuccessListener(com.google.firebase.tasks.OnSuccessListener) LoggerFactory(org.slf4j.LoggerFactory) MatrixID(io.kamax.matrix.MatrixID) ArrayList(java.util.ArrayList) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) UserRecord(com.google.firebase.auth.UserRecord) IThreePidProvider(io.kamax.mxisd.lookup.provider.IThreePidProvider) SingleLookupRequest(io.kamax.mxisd.lookup.SingleLookupRequest) Optional(java.util.Optional) OnFailureListener(com.google.firebase.tasks.OnFailureListener) UserRecord(com.google.firebase.auth.UserRecord) CountDownLatch(java.util.concurrent.CountDownLatch) OnFailureListener(com.google.firebase.tasks.OnFailureListener)

Example 2 with UserRecord

use of com.google.firebase.auth.UserRecord in project mxisd by kamax-io.

the class GoogleFirebaseProvider method populate.

@Override
public List<ThreePidMapping> populate(List<ThreePidMapping> mappings) {
    List<ThreePidMapping> results = new ArrayList<>();
    mappings.parallelStream().forEach(o -> {
        Optional<UserRecord> urOpt = findInternal(o.getMedium(), o.getValue());
        if (urOpt.isPresent()) {
            ThreePidMapping result = new ThreePidMapping();
            result.setMedium(o.getMedium());
            result.setValue(o.getValue());
            result.setMxid(getMxid(urOpt.get()));
            results.add(result);
        }
    });
    return results;
}
Also used : ThreePidMapping(io.kamax.mxisd.lookup.ThreePidMapping) UserRecord(com.google.firebase.auth.UserRecord) ArrayList(java.util.ArrayList)

Aggregations

UserRecord (com.google.firebase.auth.UserRecord)2 ThreePidMapping (io.kamax.mxisd.lookup.ThreePidMapping)2 ArrayList (java.util.ArrayList)2 OnFailureListener (com.google.firebase.tasks.OnFailureListener)1 OnSuccessListener (com.google.firebase.tasks.OnSuccessListener)1 MatrixID (io.kamax.matrix.MatrixID)1 ThreePidMedium (io.kamax.matrix.ThreePidMedium)1 MxisdConfig (io.kamax.mxisd.config.MxisdConfig)1 SingleLookupReply (io.kamax.mxisd.lookup.SingleLookupReply)1 SingleLookupRequest (io.kamax.mxisd.lookup.SingleLookupRequest)1 IThreePidProvider (io.kamax.mxisd.lookup.provider.IThreePidProvider)1 List (java.util.List)1 Optional (java.util.Optional)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 TimeUnit (java.util.concurrent.TimeUnit)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1