Skip to content

Issue#4 notifications #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
# restcomm-sdk-java
The Java SDK for RestComm REST API

- To build the Project, after downloading the zip and extracting it from GitHub, navigate to the folder containing the pom.xml
file and buiild the project using the following command in the terminal

```sh
$ mvn package
```
- Now when this command is executed, the compilation,validation and testing will be done and after the successful completion of them, a jar file will be generated in the target folder.

- Include the jar file in your build path to get Started.

Java version: 1.8.0_131

This is an SDK for RestComm REST API,
To know more about Restcomm, please refer to http://documentation.telestax.com/

Regarding issues, please refer to https://github.com/RestComm/restcomm-sdk-java/issues

141 changes: 141 additions & 0 deletions restcomm-connect.java.sdk/src/main/asciidoc/Notifications.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@

= Restcomm JAVA Sdk - Notifications

[[Notifications]]
== Notifications

A *Notification* resource represents a single log entry made by RestComm while handling your calls or your use of the Restful APIs. It is very useful for debugging purposes. The Notifications list resource represents the set of notifications generated for an account.


From here onwards, by a Notification, we refer to a Notification Resource Object

=== Fetching a Notification

A Notification with a given Sid can be fetched by the following code snippet
....
String Sid;
.
.
.
Notification CallNotification = Notification.getNotification(Sid);
....

=== Accessing the Fetched Notification

A Field of a Notification Object can be accessed by using the corresponding getMethod for that Field
....
String Message;
Message = CallNotification.getMessage_text().
....

==== List of Fields
[cols=",",options="header",]
|===============================================================================================================================================================================================================================
|Property |Method
|Sid | getSid().
|DateCreated |getDate_created().
|DateUpdated |getDate_updated().
|AccountSid |getAccount_sid().
|CallSid |getCall_sid().
|ApiVersion |getApi_version().
|Log |getLog().
|ErrorCode |getErrorCode().
|MoreInfo |getMore_info().
|MessageText |getMessage_text().
|MessageDate |getMessage_date().
|RequestUrl |getRequest_url().
|RequestMethod |getRequest_method().
|RequestVariables |getRequest_variables().
|ResponseHeaders |getResponse_headers().
|ResponseBody |getResponse_body().
|Uri |getUri().
|===============================================================================================================================================================================================================================

== Fetching List of Notifications

=== Fetching the Default List

The Default Notifications List can be fetched by using the following code

....
NotificationList List = NotificationList.getList();
....

=== Fetching a Filtered List

A Filtered Notifications List can be fetched by using the getFilteredList() method of the class NotificationList

....
NotificationList List = NotificationList.getFilteredList().ErrorCode("1").MessageText("Hello World").Filter();
....

The above mentioned code snippet fetches the Notifications with ErrorCode = 1 and MessageText = Hello World

==== List of FilterParameters
[cols=",",options="header",]
|===============================================================================================================================================================================================================================
|Parameter |Method
|StartTime |StartTime().
|EndTime |EndTime().
|ErrorCode |ErrorCode().
|MessageText |MessageText().
|RequestUrl |RequestUrl().
|===============================================================================================================================================================================================================================

In addition to these, the regular Paging paramters can also be used similar to the FilterParameters
....
NotificationList List = NotificationList.getFilteredList().PageSize("1").Filter().
....

==== List of PagingParameters
[cols=",",options="header",]
|===============================================================================================================================================================================================================================
|Paramter |Method
|Page |Page().
|NumPages |NumPages().
|PageSize |PageSize().
|Total |Total().
|Start |Start().
|End |End().
|===============================================================================================================================================================================================================================

== Accessing the Fetched NotificationList

The size of the Fetched List can be known by
....
int size = CallNotification.size();
....

The a Notification from the fetched NotificationList Object can be obtained by
....
Notification a = CallNotification.get(1);
....

== Additional Paging Information
We can also access the Additional Paging Information by using the Methods of NotificationList
....
String Uri;
Uri = CallNotification.getpreviouspageuri();
....

The API returns URIs to the next, previous, first and last pages of the returned list as shown in the table below:

=== Request Parameters

[cols=",",options="header",]
|============================================================
|Parameter |Method
|Uri |geturi().
|Firstpageuri |getfirstpageuri().
|Nextpageuri |getnextpageuri().
|Previouspageuri |getpreviouspageuri().
|Lastpageuri |getlastpageuri().
|============================================================

NOTE: The Default Account from which we fetch the Notifications is the Main Account.

If we want to change the Default Account to any specific SubAccount , use the following method before Fetching the Notification(s)
....
NotifactionList.SubAccountAccess(SubAccountSid);
NotificationList List = NotificationList.getList();
....
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
/*
* TeleStax, Open Source Cloud Communications
* Copyright 2011-2016, Telestax Inc and individual contributors
* by the @authors tag.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.restcomm.connect.java.sdk.Notifications;

import java.io.IOException;
import org.restcomm.connect.java.sdk.http.*;

import org.restcomm.connect.java.sdk.Restcomm;
import org.apache.http.ProtocolException;
import org.restcomm.connect.java.sdk.Exceptions.*;
import org.apache.http.ParseException;
import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

import java.util.ArrayList;
import java.util.List;
import org.restcomm.connect.java.sdk.ListUtil;

import org.apache.http.ParseException;
import com.google.gson.annotations.SerializedName;
import java.net.MalformedURLException;

public class FilteredNotificationList extends NotificationList {

private static String BASE_URL;
private static Request request;

public FilteredNotificationList(final String BASE_URL)
{
this.BASE_URL = BASE_URL;
request = new Request(HttpMethod.GET,BASE_URL);
}
public FilteredNotificationList Page(String value) throws MalformedURLException
{
request.addGetParameters("Page", value);
return this;
}
public FilteredNotificationList NumPages(String value)
{
request.addGetParameters("NumPages", value);
return this;
}
public FilteredNotificationList PageSize(String value)
{
request.addGetParameters("PageSize", value);
return this;
}
public FilteredNotificationList Total(String value)
{
request.addGetParameters("Total", value);
return this;
}
public FilteredNotificationList Start(String value)
{
request.addGetParameters("Start", value);
return this;
}
public FilteredNotificationList End(String value)
{
request.addGetParameters("End", value);
return this;
}
public FilteredNotificationList MessageText(String value)
{
request.addGetParameters("MessageText", value);
return this;
}
public FilteredNotificationList RequestUrl(String value)
{
request.addGetParameters("RequestUrl", value);
return this;
}
public FilteredNotificationList ErrorCode(String value)
{
request.addGetParameters("ErrorCode", value);
return this;
}
public FilteredNotificationList EndTime(String value)
{
request.addGetParameters("EndTime", value);
return this;
}
public FilteredNotificationList StartTime(String value)
{
request.addGetParameters("StartTime", value);
return this;
}

public NotificationList Filter()
{

Restcomm.sendRequest(request);
Gson gson = new Gson();
return gson.fromJson(Restcomm.getJSONResponse(),NotificationList.class);
}


}
Loading