Enchanced profile management (#68)
* Proof of concept of adding 3PIDs data to user profile * Document reverse proxy apache config * Support for Matrix Gateway project roles' endpoint * Fix conflicting ThreePid object defined in SDK and mxisd projects
This commit is contained in:
@@ -21,12 +21,16 @@
|
||||
package io.kamax.mxisd.backend.sql;
|
||||
|
||||
import io.kamax.matrix.MatrixID;
|
||||
import io.kamax.matrix.ThreePid;
|
||||
import io.kamax.matrix._MatrixID;
|
||||
import io.kamax.matrix._ThreePid;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.config.sql.SqlConfig;
|
||||
import io.kamax.mxisd.lookup.SingleLookupReply;
|
||||
import io.kamax.mxisd.lookup.SingleLookupRequest;
|
||||
import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
import io.kamax.mxisd.lookup.provider.IThreePidProvider;
|
||||
import io.kamax.mxisd.profile.ProfileProvider;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -36,10 +40,11 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public abstract class SqlThreePidProvider implements IThreePidProvider {
|
||||
public abstract class SqlThreePidProvider implements IThreePidProvider, ProfileProvider {
|
||||
|
||||
private Logger log = LoggerFactory.getLogger(SqlThreePidProvider.class);
|
||||
|
||||
@@ -109,4 +114,31 @@ public abstract class SqlThreePidProvider implements IThreePidProvider {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<_ThreePid> getThreepids(_MatrixID mxid) {
|
||||
List<_ThreePid> threepids = new ArrayList<>();
|
||||
|
||||
String stmtSql = cfg.getProfile().getThreepid().getQuery();
|
||||
try (Connection conn = pool.get()) {
|
||||
PreparedStatement stmt = conn.prepareStatement(stmtSql);
|
||||
stmt.setString(1, mxid.getId());
|
||||
|
||||
ResultSet rSet = stmt.executeQuery();
|
||||
while (rSet.next()) {
|
||||
String medium = rSet.getString("medium");
|
||||
String address = rSet.getString("address");
|
||||
threepids.add(new ThreePid(medium, address));
|
||||
}
|
||||
|
||||
return threepids;
|
||||
} catch (SQLException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRoles(_MatrixID mxid) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user