package com.coresecure.brightcove.wrapper.api; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.apache.sling.commons.json.JSONArray; import org.apache.sling.commons.json.JSONException; import org.apache.sling.commons.json.JSONObject; import com.coresecure.brightcove.wrapper.objects.Account; import com.coresecure.brightcove.wrapper.objects.Token; import com.coresecure.brightcove.wrapper.utils.JsonReader; public class DI_API { private Account account; private final static int DEFAULT_LIMIT = 20; private final static int DEFAULT_OFFSET = 0; public DI_API(Account aAccount){ account= aAccount; } public JSONObject getVideo(String ID) { JSONObject json = new JSONObject(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String urlParameters = ""; String targetURL = "/accounts/"+account.getAccount_ID()+"/videos/"+ID; try { String response = account.platform.getAPI(targetURL, urlParameters , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONArray getVideoSources(String ID) { JSONArray json = new JSONArray(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String targetURL = "/accounts/"+account.getAccount_ID()+"/videos/"+ID+"/sources"; try { String response = account.platform.getAPI(targetURL, "" , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonArrayFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONObject getVideoImages(String ID) { JSONObject json = new JSONObject(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String targetURL ="/accounts/"+account.getAccount_ID()+"/videos/"+ID+"/images"; try { String response = account.platform.getAPI(targetURL, "" , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONArray getVideos(String q, int limit, int offset, String sort) { JSONArray json = new JSONArray(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String urlParameters = "q="+q+"&limit="+limit+"&offset="+offset+"&sort="+sort; String targetURL = "/accounts/"+account.getAccount_ID()+"/videos"; try { String response = account.platform.getAPI(targetURL, urlParameters , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonArrayFromString(response); if (json.length() ==0 && !q.isEmpty()) json.put(getVideo(q)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONObject getVideoByRef(String ref_ID) { JSONObject json = new JSONObject(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String targetURL = "/accounts/"+account.getAccount_ID()+"/videos/ref:"+ref_ID; try { String response = account.platform.getAPI(targetURL, "" , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONArray getVideoSourcesByRef(String ref_ID) { JSONArray json = new JSONArray(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String targetURL = "/accounts/"+account.getAccount_ID()+"/videos/ref:"+ref_ID+"/sources"; try { String response = account.platform.getAPI(targetURL, "" , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonArrayFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } public JSONObject getVideoImagesByRef(String ref_ID) { JSONObject json = new JSONObject(); account.login(); Token authToken = account.getToken(); if (authToken != null) { Map<String, String> headers = new HashMap<String, String>(); headers.put("Authorization", authToken.getTokenType()+" "+authToken.getToken()); String targetURL = "/accounts/"+account.getAccount_ID()+"/videos/ref:"+ref_ID+"/images"; try { String response = account.platform.getAPI(targetURL, "" , headers); if (response != null && !response.isEmpty()) json = JsonReader.readJsonFromString(response); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return json; } // Command permutations public JSONArray getVideos() { return getVideos("",DEFAULT_LIMIT,DEFAULT_OFFSET,""); } public JSONArray getVideos(String q) { return getVideos(q,DEFAULT_LIMIT,DEFAULT_OFFSET,""); } public JSONArray getVideos(String q, String sort) { return getVideos(q,DEFAULT_LIMIT,DEFAULT_OFFSET,sort); } public JSONArray getVideos(String q, int limit) { return getVideos(q,limit,DEFAULT_OFFSET,""); } public JSONArray getVideos(String q, int limit, int offset) { return getVideos(q,limit,offset,""); } public JSONArray getVideos(int limit, int offset, String sort) { return getVideos("",limit,offset,sort); } }