Add support for 3PID notification for Matrix ID room invites
- Experimental feature - Via AS API
This commit is contained in:
108
src/main/java/io/kamax/mxisd/config/ListenerConfig.java
Normal file
108
src/main/java/io/kamax/mxisd/config/ListenerConfig.java
Normal file
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2018 Kamax Sarl
|
||||
*
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.kamax.mxisd.config;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
@Configuration
|
||||
@ConfigurationProperties("matrix.listener")
|
||||
public class ListenerConfig {
|
||||
|
||||
public static class Token {
|
||||
|
||||
private String as;
|
||||
private String hs;
|
||||
|
||||
public String getAs() {
|
||||
return as;
|
||||
}
|
||||
|
||||
public void setAs(String as) {
|
||||
this.as = as;
|
||||
}
|
||||
|
||||
public String getHs() {
|
||||
return hs;
|
||||
}
|
||||
|
||||
public void setHs(String hs) {
|
||||
this.hs = hs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private transient URL csUrl;
|
||||
private String url;
|
||||
private String localpart;
|
||||
private Token token = new Token();
|
||||
|
||||
public URL getUrl() {
|
||||
return csUrl;
|
||||
}
|
||||
|
||||
public void setUrl(String url) {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getLocalpart() {
|
||||
return localpart;
|
||||
}
|
||||
|
||||
public void setLocalpart(String localpart) {
|
||||
this.localpart = localpart;
|
||||
}
|
||||
|
||||
public Token getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
public void setToken(Token token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void build() throws MalformedURLException {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
return;
|
||||
}
|
||||
|
||||
csUrl = new URL(url);
|
||||
|
||||
if (StringUtils.isBlank(getLocalpart())) {
|
||||
throw new IllegalArgumentException("localpart for matrix listener is not set");
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(getToken().getAs())) {
|
||||
throw new IllegalArgumentException("AS token is not set");
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(getToken().getHs())) {
|
||||
throw new IllegalArgumentException("HS token is not set");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2017 Maxime Dor
|
||||
* Copyright (C) 2017 Kamax Sarl
|
||||
*
|
||||
* https://max.kamax.io/
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
@@ -28,6 +28,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Configuration
|
||||
@ConfigurationProperties("notification.handlers.sendgrid")
|
||||
@@ -142,6 +144,15 @@ public class EmailSendGridConfig {
|
||||
|
||||
private EmailTemplate invite = new EmailTemplate();
|
||||
private TemplateSession session = new TemplateSession();
|
||||
private Map<String, EmailTemplate> generic = new HashMap<>();
|
||||
|
||||
public Map<String, EmailTemplate> getGeneric() {
|
||||
return generic;
|
||||
}
|
||||
|
||||
public void setGeneric(Map<String, EmailTemplate> generic) {
|
||||
this.generic = generic;
|
||||
}
|
||||
|
||||
public EmailTemplate getInvite() {
|
||||
return invite;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* mxisd - Matrix Identity Server Daemon
|
||||
* Copyright (C) 2017 Maxime Dor
|
||||
* Copyright (C) 2017 Kamax Sarl
|
||||
*
|
||||
* https://max.kamax.io/
|
||||
* https://www.kamax.io/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
@@ -22,6 +22,9 @@ package io.kamax.mxisd.config.threepid.medium;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class GenericTemplateConfig {
|
||||
|
||||
private static final String classpathPrefix = "classpath:";
|
||||
@@ -73,6 +76,7 @@ public class GenericTemplateConfig {
|
||||
|
||||
private String invite;
|
||||
private Session session = new Session();
|
||||
private Map<String, String> generic = new HashMap<>();
|
||||
|
||||
public String getInvite() {
|
||||
return invite;
|
||||
@@ -86,4 +90,12 @@ public class GenericTemplateConfig {
|
||||
return session;
|
||||
}
|
||||
|
||||
public Map<String, String> getGeneric() {
|
||||
return generic;
|
||||
}
|
||||
|
||||
public void setGeneric(Map<String, String> generic) {
|
||||
this.generic = generic;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user