if (nextToken != null) {
listTopicRequest.setNextToken(nextToken);
}
ListTopicsResult listTopicResult = sns.listTopics(listTopicRequest);
topics = listTopicResult.getTopics();
} catch (Exception ex) {
logger.error("event=list_topics user_id= " + userId, ex);
throw new ServletException(ex);
}
for (int i = 0; topics != null && i < topics.size(); i++) {
Topic t = topics.get(i);
try {
DeleteTopicRequest deleteTopicRequest = new DeleteTopicRequest(t.getTopicArn());
sns.deleteTopic(deleteTopicRequest);
logger.debug("event=delete_topic topic_arn=" + (t != null ? t.getTopicArn() : "null") + " user_id= " + userId);
} catch (Exception ex) {
logger.error("event=delete_topic topic_arn=" + (t != null ? t.getTopicArn() : "null") + " user_id= " + userId, ex);
}
}
}
out.println("<html>");
header(request, out, "Topics");
out.println("<body>");
out.println("<h2>Topics</h2>");
long numTopics = 0;
try {
numTopics = PersistenceFactory.getUserPersistence().getNumUserTopics(userId);
} catch (PersistenceException ex) {
logger.warn("event=queue_count_failure", ex);
}
if (user != null) {
out.println("<table><tr><td><b>User Name:</b></td><td>"+ user.getUserName()+"</td></tr>");
out.println("<tr><td><b>User ID:</b></td><td>"+ user.getUserId()+"</td></tr>");
out.println("<tr><td><b>Access Key:</b></td><td>"+user.getAccessKey()+"</td></tr>");
out.println("<tr><td><b>Access Secret:</b></td><td>"+user.getAccessSecret()+"</td>");
out.println("<tr><td><b>Topic Count</b></td><td>"+numTopics+"</td></tr></table>");
}
out.println("<p><table>");
out.println("<tr><td><b>Topic Name</b></td><td><b>Topic Display Name</b></td><td></td></tr>");
out.println("<form action=\"/webui/cnsuser?userId=" + userId + "\" " + "method=POST>");
out.println("<tr><td><input type='text' name='topic' /></td><td><input type='text' name='display'><input type='hidden' name='userId' value='"+ userId + "'></td><td><input type='submit' value='Create' name='Create' /></td></tr></form></table></p>");
out.println("<p><table>");
out.println("<form action=\"/webui/cnsuser?userId=" + userId + "\" " + "method=POST>");
out.println("<tr><td><input type='hidden' name='userId' value='"+ userId + "'></td><td><input type='submit' value='Delete All' name='DeleteAll' onclick=\"return confirm('Are you sure you want to delete all topics?')\" /></td></tr></form></table></p>");
ListTopicsResult listTopicResult = null;
try {
ListTopicsRequest listTopicRequest = new ListTopicsRequest();
if (nextToken != null) {
listTopicRequest.setNextToken(nextToken);
}
listTopicResult = sns.listTopics(listTopicRequest);
topics = listTopicResult.getTopics();
} catch (Exception ex) {
logger.error("event=list_topics user_id= " + userId, ex);
throw new ServletException(ex);
}
out.println("<p><hr width='100%' align='left' /></p>");
out.println("<p><table class = 'alternatecolortable' border='1'>");
out.println("<tr><th> </th>");
out.println("<th>Topic Arn</th>");
out.println("<th>Topic Name</th>");
out.println("<th>Topic Display Name</th>");
out.println("<th>User ID</th>");
out.println("<th>Subscriptions Pending</th>");
out.println("<th>Subscriptions Confirmed</th>");
out.println("<th> </th>");
out.println("<th> </th>");
out.println("<th> </th>");
out.println("<th> </th>");
out.println("<th> </th></tr>");
for (int i = 0; topics != null && i < topics.size(); i++) {
Topic t = topics.get(i);
GetTopicAttributesRequest getTopicAttributesRequest = new GetTopicAttributesRequest(t.getTopicArn());
GetTopicAttributesResult getTopicAttributesResult = sns.getTopicAttributes(getTopicAttributesRequest);
Map<String, String> attributes = getTopicAttributesResult.getAttributes();
out.println("<tr>");
out.println("<form action=\"/webui/cnsuser?userId="+userId+"\" method=POST>");
out.println("<td>"+i+"</td>");
out.println("<td>"+t.getTopicArn() +"<input type='hidden' name='arn' value="+t.getTopicArn()+"></td>");
out.println("<td>"+Util.getNameFromTopicArn(t.getTopicArn())+"</td>");
out.println("<td><a href='' onclick=\"window.open('/webui/cnsuser/editdisplayname?topicArn="+ t.getTopicArn() + "&userId="+userId+"', 'EditDisplayName', 'height=300,width=700,toolbar=no')\">"+(attributes.get("DisplayName") == null ? "{unset}" : attributes.get("DisplayName"))+"</a></td>");
out.println("<td>"+user.getUserId()+"<input type='hidden' name='userId' value="+user.getUserId()+"></td>");
out.println("<td>"+attributes.get("SubscriptionsPending")+"</td>");
out.println("<td>"+attributes.get("SubscriptionsConfirmed")+"</td>");
out.println("<td><a href='/webui/cnsuser/subscription?userId="+ userId + "&topicArn=" + t.getTopicArn() + "'>Subscriptions</a></td>");
out.println("<td><a href='/webui/cnsuser/publish?userId="+ userId + "&topicArn="+ t.getTopicArn() + "' target='_blank'>Publish</a></td>");
out.println("<td><a href='' onclick=\"window.open('/webui/cnsuser/editdeliverypolicy?topicArn="+ t.getTopicArn() + "&userId="+userId+"', 'EditDeliveryPolicy', 'height=630,width=580,toolbar=no')\">View/Edit Topic Delivery Policy</a></td>");
out.println("<td><a href='/webui/cnsuser/permission?topicArn="+ t.getTopicArn() + "&userId=" + userId + "'>Permission</a></td>");
out.println("<td><input type='submit' value='Delete' name='Delete' onclick=\"return confirm('Are you sure you want to delete topic "+Util.getNameFromTopicArn(t.getTopicArn())+"?')\" /></td></form></tr>");
}
out.println("</table></p>");
if (listTopicResult != null && listTopicResult.getNextToken() != null) {
out.println("<p><a href='/webui/cnsuser?userId="+userId+"&nextToken="+response.encodeURL(listTopicResult.getNextToken())+"'>next ></a></p>");
}
out.println("<h5 style='text-align:center;'><a href='/webui'>ADMIN HOME</a></h5>");
out.println("</body></html>");