/*
* Licensed Materials - Property of IBM
* 5725-I43 (C) Copyright IBM Corp. 2015. All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*/
package com.ibm.mil.readyapps.telco.adapters;
import java.util.logging.Logger;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.ibm.json.java.JSONObject;
import com.worklight.adapters.rest.api.WLServerAPI;
import com.worklight.adapters.rest.api.WLServerAPIProvider;
import com.worklight.core.auth.OAuthSecurity;
import com.worklight.core.oauth.api.OAuthSecurityContext;
import com.worklight.core.oauth.api.OAuthUserIdentity;
/**
* TelcoUserAdapterResource this class is for demo purposes only and
* demonstrates the typical functions that a client would need to edit and
* display information about a user.
*
* @tannerpreiss
*
*/
@Path("/users")
public class TelcoUserAdapterResource {
//Define logger (Standard java.util.Logger)
static Logger logger = Logger.getLogger(TelcoUserAdapterResource.class.getName());
//Define the server api to be able to perform server operations
WLServerAPI api = WLServerAPIProvider.getWLServerAPI();
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/secret" */
@GET
@Path("/{user_id}/secret")
@Produces(MediaType.APPLICATION_JSON)
@OAuthSecurity(scope="AdapterAuthenticationRealm")
public Response getSecretData(@PathParam("user_id") String userId) {
OAuthSecurityContext securityContext = api.getSecurityAPI().getSecurityContext();
OAuthUserIdentity identity = securityContext.getUserIdentity();
JSONObject response = new JSONObject();
response.put("secretData", "This is the secret Data...");
if (identity != null) {
response.put("userIdentity", identity.toString());
}
return Response.ok(response).build();
}
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}" */
@GET
@Path("/{user_id}")
@OAuthSecurity(enabled=false)
public Response getUser(@PathParam("user_id") String userId) {
return Response.ok("getUser() for user " + userId + " was successful.").build();
}
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}" */
@PUT
@Path("/{user_id}")
public Response updateUser(@PathParam("user_id") String userId) {
return Response.ok("updateUser() for user " + userId + " was successful.").build();
}
/** --------------------ADDONS ----------------------**/
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}/addons" */
@GET
@Path("/{user_id}/addons")
public Response getUserAddons(@PathParam("user_id") String userId) {
return Response.ok("getUserAddons() for user " + userId + " was successful.").build();
}
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}/addons" */
@POST
@Path("/{user_id}/addons")
public Response updateUserAddons(@PathParam("user_id") String userId) {
return Response.ok("updateUserAddons() for user " + userId + " was successful.").build();
}
/** --------------------OFFFERS ---------------------**/
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}/offers" */
@GET
@Path("/{user_id}/offers")
public Response getUserOffers(@PathParam("user_id") String userId) {
return Response.ok("updateUserOffers() for user " + userId + " was successful.").build();
}
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}/offers" */
@POST
@Path("/{user_id}/offers")
public Response updateUserOffers(@PathParam("user_id") String userId) {
return Response.ok("updateUserOffers() for user " + userId + " was successful.").build();
}
/* Path for method: "<server address>/TelcoReadyAppMFP/adapters/TelcoUserAdapter/users/{user_id}/offers/recommended" */
@GET
@Path("/{user_id}/offers/recommended")
public Response getRecommendedOffers(@PathParam("user_id") String userId) {
return Response.ok("getRecommendedOffers() for user " + userId + " was successful.").build();
}
}