Skip to content

Commit 28def29

Browse files
RESTCOMM-2064: Add setter getter for ExtensionContext for ExtensionRequest. Set extensionContext in ExtensionController
1 parent 54b0f02 commit 28def29

File tree

7 files changed

+59
-9
lines changed

7 files changed

+59
-9
lines changed

restcomm/restcomm.extension.api/src/main/java/org/restcomm/connect/extension/api/ApiRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
/**
2525
* Created by gvagenas on 10/10/2016.
2626
*/
27-
public class ApiRequest {
27+
public class ApiRequest extends ExtensionRequest {
2828
public static enum Type {
2929
AVAILABLEPHONENUMBER,INCOMINGPHONENUMBER, CREATE_SUBACCOUNT
3030
};

restcomm/restcomm.extension.api/src/main/java/org/restcomm/connect/extension/api/ExtensionRequest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
public class ExtensionRequest implements IExtensionRequest{
2424
private boolean allowed = true;
2525
private String accountSid;
26+
private ExtensionContext extensionContext;
27+
2628
public ExtensionRequest() {
2729
this("", true);
2830
}
@@ -58,4 +60,22 @@ public void setAllowed(boolean allowed) {
5860
this.allowed = allowed;
5961
}
6062

63+
/**
64+
* setExtensionContext
65+
* @param ExtensionContext
66+
*/
67+
@Override
68+
public void setExtensionContext(ExtensionContext ec) {
69+
this.extensionContext = ec;
70+
}
71+
72+
/**
73+
* getExtensionContext
74+
* @return the current ExtensionContext
75+
*/
76+
@Override
77+
public ExtensionContext getExtensionContext() {
78+
return this.extensionContext;
79+
}
80+
6181
}

restcomm/restcomm.extension.api/src/main/java/org/restcomm/connect/extension/api/IExtensionRequest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,14 @@ public interface IExtensionRequest {
3737
* @param set to allow/restrict request
3838
*/
3939
void setAllowed(boolean allowed);
40+
41+
/**
42+
* @param set ExtensionContext
43+
*/
44+
void setExtensionContext(ExtensionContext ec);
45+
46+
/**
47+
* @param set ExtensionContext
48+
*/
49+
ExtensionContext getExtensionContext();
4050
}

restcomm/restcomm.extension.controller/src/main/java/org/restcomm/connect/extension/controller/ExtensionController.java

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public ExtensionResponse executePreOutboundAction(final IExtensionRequest ier, L
130130
// extensionResponse
131131
ExtensionResponse response = new ExtensionResponse();
132132
if (extensions != null && extensions.size() > 0) {
133-
133+
ier.setExtensionContext(this);
134134
for (RestcommExtensionGeneric extension : extensions) {
135135
if(logger.isInfoEnabled()) {
136136
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -160,7 +160,7 @@ public ExtensionResponse executePreOutboundAction(final IExtensionRequest ier, L
160160
public ExtensionResponse executePostOutboundAction(final IExtensionRequest er, List<RestcommExtensionGeneric> extensions) {
161161
ExtensionResponse response = new ExtensionResponse();
162162
if (extensions != null && extensions.size() > 0) {
163-
163+
er.setExtensionContext(this);
164164
for (RestcommExtensionGeneric extension : extensions) {
165165
if(logger.isInfoEnabled()) {
166166
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -190,6 +190,7 @@ public ExtensionResponse executePostOutboundAction(final IExtensionRequest er, L
190190
public ExtensionResponse executePreInboundAction(final IExtensionRequest er, List<RestcommExtensionGeneric> extensions) {
191191
ExtensionResponse response = new ExtensionResponse();
192192
if (extensions != null && extensions.size() > 0) {
193+
er.setExtensionContext(this);
193194
for (RestcommExtensionGeneric extension : extensions) {
194195
if(logger.isInfoEnabled()) {
195196
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -219,6 +220,7 @@ public ExtensionResponse executePreInboundAction(final IExtensionRequest er, Lis
219220
public ExtensionResponse executePostInboundAction(final IExtensionRequest er, List<RestcommExtensionGeneric> extensions) {
220221
ExtensionResponse response = new ExtensionResponse();
221222
if (extensions != null && extensions.size() > 0) {
223+
er.setExtensionContext(this);
222224
for (RestcommExtensionGeneric extension : extensions) {
223225
if(logger.isInfoEnabled()) {
224226
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -249,6 +251,7 @@ public ExtensionResponse executePreApiAction(final ApiRequest apiRequest, List<R
249251
ExtensionResponse response = new ExtensionResponse();
250252

251253
if (extensions != null && extensions.size() > 0) {
254+
apiRequest.setExtensionContext(this);
252255
for (RestcommExtensionGeneric extension : extensions) {
253256
if(logger.isInfoEnabled()) {
254257
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -279,6 +282,7 @@ public ExtensionResponse executePostApiAction(final ApiRequest apiRequest, List<
279282
ExtensionResponse response = new ExtensionResponse();
280283

281284
if (extensions != null && extensions.size() > 0) {
285+
apiRequest.setExtensionContext(this);
282286
for (RestcommExtensionGeneric extension : extensions) {
283287
if(logger.isInfoEnabled()) {
284288
logger.info( extension.getName()+" is enabled="+extension.isEnabled());
@@ -313,9 +317,22 @@ public ExtensionConfiguration getEffectiveConfiguration(String extensionSid, Str
313317
OrganizationsDao od = daoManager.getOrganizationsDao();
314318

315319
Sid sid = new Sid(scopeSid);
316-
Client client = cd.getClient(sid);
317-
Account account = ad.getAccount(sid);
318-
Organization organization = od.getOrganization(sid);
320+
Sid.Type t = Sid.getType(sid);
321+
Client client = null;
322+
Account account = null;
323+
Organization organization = null;
324+
325+
switch(t) {
326+
case CLIENT:
327+
client = cd.getClient(sid);
328+
break;
329+
case ACCOUNT:
330+
account = ad.getAccount(sid);
331+
break;
332+
case ORGANIZATION:
333+
organization = od.getOrganization(sid);
334+
break;
335+
}
319336

320337
//FIXME: might not be optimized
321338
//preliminary check for all scopes: client, acc, org

restcomm/restcomm.sms.api/src/main/java/org/restcomm/connect/sms/api/CreateSmsSession.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@
2121

2222
import org.apache.commons.configuration.Configuration;
2323
import org.restcomm.connect.commons.annotations.concurrency.Immutable;
24+
import org.restcomm.connect.extension.api.ExtensionRequest;
2425
import org.restcomm.connect.extension.api.IExtensionCreateSmsSessionRequest;
2526
/**
2627
* @author quintana.thomas@gmail.com (Thomas Quintana)
2728
*/
2829
@Immutable
29-
public final class CreateSmsSession implements IExtensionCreateSmsSessionRequest {
30+
public final class CreateSmsSession extends ExtensionRequest implements IExtensionCreateSmsSessionRequest {
3031
private final String from;
3132
private final String to;
3233
private final String accountSid;

restcomm/restcomm.telephony.api/src/main/java/org/restcomm/connect/telephony/api/CreateCall.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.restcomm.connect.commons.dao.Sid;
2424
import org.restcomm.connect.commons.telephony.CreateCallType;
2525
import org.restcomm.connect.dao.entities.MediaAttributes;
26+
import org.restcomm.connect.extension.api.ExtensionRequest;
2627
import org.restcomm.connect.extension.api.IExtensionCreateCallRequest;
2728

2829
import java.net.URI;
@@ -36,7 +37,7 @@
3637
* @author gvagenas@telestax.com
3738
*/
3839
@Immutable
39-
public final class CreateCall implements IExtensionCreateCallRequest{
40+
public final class CreateCall extends ExtensionRequest implements IExtensionCreateCallRequest{
4041

4142
private final String from;
4243
private final String to;

restcomm/restcomm.telephony.api/src/main/java/org/restcomm/connect/telephony/api/FeatureAccessRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
package org.restcomm.connect.telephony.api;
2222

2323
import org.restcomm.connect.commons.dao.Sid;
24+
import org.restcomm.connect.extension.api.ExtensionRequest;
2425
import org.restcomm.connect.extension.api.IExtensionFeatureAccessRequest;
2526

26-
public class FeatureAccessRequest implements IExtensionFeatureAccessRequest {
27+
public class FeatureAccessRequest extends ExtensionRequest implements IExtensionFeatureAccessRequest {
2728

2829
public enum Feature {
2930
OUTBOUND_VOICE("outbound-voice"), INBOUND_VOICE("inbound-voice"), OUTBOUND_SMS("outbound-sms"),

0 commit comments

Comments
 (0)