From ed5361dac3712b4a72c0f4dc572fd57bbeaf73dd Mon Sep 17 00:00:00 2001 From: vyshakhbabji Date: Mon, 21 Sep 2015 13:29:59 -0700 Subject: [PATCH] Adding New Platfrom Object --- bin/core/SDK.class | Bin 590 -> 697 bytes bin/platform/Auth.class | Bin 2924 -> 2703 bytes bin/platform/Platform$1.class | Bin 608 -> 608 bytes bin/platform/Platform.class | Bin 5392 -> 7384 bytes src/core/SDK.java | 2 +- src/platform/Auth.java | 8 +- src/platform/Platform.java | 235 +++++++++++++++++++++++++++++++--- 7 files changed, 222 insertions(+), 23 deletions(-) diff --git a/bin/core/SDK.class b/bin/core/SDK.class index 2db66f41fc07de4e712e7378e2317bc86060c74c..b2fecbeca9f66b3a4ec73adf5defa4eed7265cec 100644 GIT binary patch delta 184 zcmX@dvXhnT)W2Q(7#J8#7*r;51u!{kOw3b}^eMbNFF0}5mdV+SHk0o%HgQTYFf%YRNHfSx R&S0|OWMq&9s%B!40{~e>4_g2L diff --git a/bin/platform/Auth.class b/bin/platform/Auth.class index 1b272c04b71c4c940be541750dce4fa5b7828200..5d472adab704ddcb5f2a6d0df62f46a4ff3a722f 100644 GIT binary patch delta 155 zcmaDO)-TF+>ff$?3=9k=3{@Msp0jM8#+u8_sm8#}z{0@5sK1$qQ;(5%BT$}&K@>>V zG00EO=c*3PWe@}M>=@WUiWtNhB!D~+tAL@9fstW3P^5^Vn1P95Jp(^O2}3CZGov_6 ej8PsY#!v>-!~;|h(OEv(pIeN*0w~7BPzeAM5g7jf delta 359 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 literal 5392 zcma)A33yyp75;BB$(u}Gx=d*xfF;mUk~HZvr4&eNF-w=wvM8x8DI^t*X^frm#4jFrCqqJ#O^-6Ab}{MVFa-Oe0|?$Be#_%dDuQP;Ew|Rwgr) zy4*@CgnMTx1|2(|9BWsoG}Gy=);@(QP6n;0ZSh>d%sRUj7WU5E)WHQ(YqGIppjV-$ zE0xSRX3`lp6Im;W1q#O)w#B7%+(-$T;ds~940P@4AL#4e(KXc5w_PE`@4=4k-JN|G z@cN8p@3Cx7*2j}^XM@7o4W(kfl$FL|%H5TUSs|38R!11eDwH=g4p%{;PDeE=gE&E< zez)VKGi`>E*KM^}B5EZa+f1yErpAT-WjYoL{YeT9CG;_Ck3&W0J9n~{J~=REBUG8Z|V`@ssBT9ZguJ5Oh-BH!a!FSgLXm3x&yQ9R^-bgIQN(%|u3FX`#V9 z&$l;TC^D?ku^5#a0|zyEZ4L2c2&bb~D9+STg^+kUp0u`S$44xC$Q(&n5-h2xnHV(&-itnW?PV}_YFqq{9bTwrWB$1OM5`pvlAzJV+>bSktI)5XWr2_u?_)1yYW zHEL!P&K92Ua#up=0JCVL!fD0l{3GL*vpW^b7;>gRm2os|Ryejeb2_u}M9i|qAw4?I z#a8CV9?68hQH7QBd8E{#A#B1n2~;M<94Gq8**Gi|{W{LWfS0INGDd|9x#vksxcdUO z3ya1Oy0I+?+Pp^GpR(gunoc~G3_?<{)6B%9^&y7Cg*tXhD4u8~qs*j^{+=$|iqVj9 zM%qw{gx0#X!t7!lmtYrNn6aEKmPt#{p!3L8A{MGt>f7U3wj@gX3!fEt zb|bCh3eZ|&IZr%=lNw5bU82w1rp2n^V2_3@ja00FAGEUpu46AI7>w4070o&{SYIjg zc_Mv>9UmZ|5Z2lo=M`qa%A|?-R(mzB#8nzz#V9EjMx@Bo>3B6>!+0CB9O8nL%?QFM zEF-cNADi7L^Vi{O4X>vYUYJV98}POlK*XZJFcVw&?X%9dEWr*TljXXci;eHq7M%G`+0 z(nYB(yNjh>j!@oymR{cpWO+b<>I?XihA&d9yrT+ebbMK`QcKIRL{h`eES0R-##kyf zmavSmOe$$?=1&MW3CiC}HZyfEU#V8KhHwZuG2Rqy)G$vi6Z;;*VI8+)n%B{5f>QKw z-es;$ZEG~aF3XTTN`Di+s^boPjfH&FPK}>SF%&k;W7GmnoWr89O?j;)r0n!l?zS$chg|g$EfKA>4)UYPh?=!aaQ(C!$tb3WAP% zq-|R0TG*}UL$(>E>Vc6|j7{PqPx#q7&hp`*2|J#W#4Z6Rb_szrYpOyi3d{paQhs?P z$hOkO9>Pb-9fg=f+A^CJ^0=7*n~MP4uOu%v1T!=x*&!k(T&N02I59$c=Zi3sRr}uX zV#B|)G%_f^G(z2`!?L%ez<&O55!z}k%!&ekaIWOhUeZ&&c*n%%y5Nj| z|9Wq!zz}}m6s~M&*YHP$1+$?jHxejCHEAa-4S&jqlp7r#wr%bcq7WXDT>OhdQ!%8E z^KD{|S%%wy%xUj}c#L+-@^O%4*B8R0cw7>8S2Z5OlREw`4RE;`iv{sC>C$Esg9qO|Y@ZxZTY^1#@jaQg%7Co21QiI$nVdLHt`mwMqB(UmefmD48(JJNL1#r~exo zcXo!9QstWBbE{sIo-iiH6UIn988gI_!j4GJmkaB@t^%q;o@D|{UXRonPntIKrM6*b zXJKCZxJpa%nN-kQF^_#?FdBBUt6e~GI%XelY}i$`uBrrY1&_RpUraoj!8bSM6}G-O z3cN&*3s#)27U^oS3VS%?#cqV zf^M=hIGJuJ=W{m5u>zHxk-In8do9$*LS@@pm=F0pDr?ET?!YD8x$CViit6GwRWTwWK(U zV>=&co6w50eQJt=Hm=IwW>-~~Ud}|>GIu6wlw&>TttdN6Mggj%;WY1`Ox01*YR+nz z_eHH4(PVTEkC)+xA8cr8-^ zcVCZdrm>%Qy*VN~Z;_pMC`{qKQ}{qz#WW63o{zLuhCkY-9Yl3qWu2D8$Ih>-$l-=a zn|9aHCvU;0>MC>iTn?X~#!aNYr7bv(LlL@jGKbsRs_KI7eqB`#U%3-^wuPFg)w;S+ z4&OM4P+NuY`p(U?O9W5gDb~Ay>%Ob$B;X91eH|TlCf0CuJ;!tCs7^Ylo8xA>X_)qm zaCL-FMTa|Ap^IH%C$1&M0c^x|bnf+}ypiJ}^swfi%R9E>Ui9K89Ph(6{2JTwTaFK- zk20KxXE1>0FvJ_cHdEsH$V^Ba!T0ceN*koCKfn*^!&7GtI>-{|G-dv(!`<$l+hJdAW=R z04|`)5h{NnGjJ!}cM*+q30E(5jlR|sX2$3dJVwJw9!BsiXOf2zJk41-`SiOk3ApCc zN#(6PKsP9PAoEv%CP`WWvIak~PVp1#2-AlVxx&k$-c>pLXIt}aiXEaPs36G#_goaq z_?%o0%ayR+YSW{@rUhiu6GV{hSKT^7gcfyF5j90a_1z zl+u-esK{>k=PTrV@!|1;!xj0%(r!`+7iH7}m&wKa76ViXljfXSIO~%Tx4@Tf5O#rf oRWtUlqD`e93)D-Hmd)7OTX~QxWoilc%hWMyDMz6`#F2mh14L(yTmS$7 diff --git a/src/core/SDK.java b/src/core/SDK.java index ff15175..f87c698 100644 --- a/src/core/SDK.java +++ b/src/core/SDK.java @@ -6,7 +6,7 @@ public class SDK { Platform platform; - public SDK(String appKey, String appSecret, String server) { + public SDK(String appKey, String appSecret, Platform.Server server) { platform = new Platform(appKey, appSecret, server); } diff --git a/src/platform/Auth.java b/src/platform/Auth.java index 524acd5..2d2590b 100644 --- a/src/platform/Auth.java +++ b/src/platform/Auth.java @@ -102,9 +102,9 @@ public void setData(Map authData) { this.refresh_token_expire_time = calendar.getTime(); } - System.out.println(this.expire_time); - System.out.println(this.expires_in); - System.out.println(this.refresh_token_expires_in); - System.out.println(this.refresh_token_expire_time); +// System.out.println(this.expire_time); +// System.out.println(this.expires_in); +// System.out.println(this.refresh_token_expires_in); +// System.out.println(this.refresh_token_expire_time); } } diff --git a/src/platform/Platform.java b/src/platform/Platform.java index 7a76041..02a8a06 100644 --- a/src/platform/Platform.java +++ b/src/platform/Platform.java @@ -5,9 +5,12 @@ import java.io.InputStreamReader; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.List; import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map.Entry; +import javax.net.ssl.HttpsURLConnection; import javax.xml.bind.DatatypeConverter; import org.apache.http.Consts; @@ -16,8 +19,11 @@ import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.message.BasicNameValuePair; import com.google.gson.Gson; @@ -25,43 +31,59 @@ public class Platform { - public String accessToken; + public enum ContentTypeSelection { + FORM_TYPE_MARKDOWN("application/x-www-form-urlencoded"), JSON_TYPE_MARKDOWN( + "application/json"), MULTIPART_TYPE_MARKDOWN( + "multipart/mixed; boundary=Boundary_1_14413901_1361871080888"); + + private String value; + + private ContentTypeSelection(String contentType) { + this.value = contentType; + } + + } + + public enum Server { + + PRODUCTION( + "https://platform.ringcentral.com"), SANDBOX("https://platform.devtest.ringcentral.com"); + private String value; + + private Server(String url) { + this.value = url; + } + } + public String accessToken; public String appKey; public String appSecret; - Auth auth; - final String authURL = "/restapi/oauth/token"; - public String RC_PRODUCTION = "https://platform.ringcentral.com"; - public String RC_SANDBOX = "https://platform.devtest.ringcentral.com"; - public String server; + public Server server; - public Platform(String appKey, String appSecret, String server) { + public Platform(String appKey, String appSecret, Server server) { super(); this.appKey = appKey; this.appSecret = appSecret; - this.server = server.toString().equals("RC_PRODUCTION") ? RC_PRODUCTION - : RC_SANDBOX; + this.server = server; this.auth = new Auth(); - } public void authCall(List body) { HttpClient client = new DefaultHttpClient(); - HttpPost post = new HttpPost(this.server + authURL); + HttpPost post = new HttpPost(server.value + authURL); post.setHeader(HttpHeaders.AUTHORIZATION, "Basic " + encodeAPICredentialsToBase64()); post.setHeader(HttpHeaders.CONTENT_TYPE, - "application/x-www-form-urlencoded"); + ContentTypeSelection.FORM_TYPE_MARKDOWN.value); post.setEntity(new UrlEncodedFormEntity(body, Consts.UTF_8)); HttpResponse response = null; try { response = client.execute(post); - if (response.getStatusLine().getStatusCode() == 200) { BufferedReader rd = new BufferedReader(new InputStreamReader( response.getEntity().getContent())); @@ -70,12 +92,12 @@ public void authCall(List body) { while ((line = rd.readLine()) != null) { result.append(line); } - System.out.println(result.toString()); + // System.out.println(result.toString()); Gson gson = new Gson(); Type HashMapType = new TypeToken>() { }.getType(); - HashMap authData = gson.fromJson(result.toString(), - HashMapType); + HashMap authData = gson.fromJson( + result.toString(), HashMapType); setAuth(auth, authData); } } catch (IOException e1) { @@ -101,6 +123,10 @@ public String encodeAPICredentialsToBase64() { return DatatypeConverter.printBase64Binary(message); } + public String getAuthHeader(){ + return this.auth.getTokenType() + " " + this.getAccessToken(); + } + public String getAccessToken() { return auth.getAccessToken(); } @@ -113,4 +139,177 @@ public void setAuth(Auth auth, HashMap authData) { this.auth.setData(authData); } -} \ No newline at end of file + + //apiCall("post", "/call-log", "{body}", header) + + //Additionals + + + + public HttpResponse apiCall(String method, String apiURL, LinkedHashMap body, HashMap headerMap) throws IOException { + + //this.isAuthorized(); + + String URL = server.value+apiURL; + + HttpClient client = HttpClientBuilder.create().build(); + HttpResponse response=null; + if(headerMap==null){ + headerMap= new HashMap(); + } + + headerMap.put("Authorization", getAuthHeader()); + if(method.equalsIgnoreCase("get")){ + HttpGet httpget = new HttpGet(URL); + for (Entry entry : headerMap.entrySet()) { + httpget.addHeader(entry.getKey(), entry.getValue()); + } + response = client.execute(httpget); + } + + return response; + } + + + + // + //BufferedReader in = null; + // + //String output = ""; + //try { + // + // StringBuilder data = new StringBuilder(); + // byte[] byteArray = data.toString().getBytes("UTF-8"); + // + // URL requests = new URL(urll); + // httpConn = (HttpsURLConnection) requests.openConnection(); + // httpConn.setRequestMethod("GET"); + // httpConn.setRequestProperty( + // "Authorization", + // "Bearer "+getAccessToken().toString()); + // httpConn.setDoOutput(true); + // System.out.println("Here"); + // InputStreamReader reader = new InputStreamReader( + // httpConn.getInputStream()); + // in = new BufferedReader(reader); + // System.out.println("Done"); + // StringBuffer content = new StringBuffer(); + // String line; + // while ((line = in.readLine()) != null) { + // content.append(line + "\n"); + // } + // in.close(); + // + // String json = content.toString(); + // Date date = new Date(); + // output = "--------------"+date+"-------------------\n"; + // output = output+ json; + // System.out.println("presence : "+ json); + // + //} catch (java.io.IOException e) { + // output = output+ e.getMessage(); + // System.out.println(e.getMessage()); + // + //} finally { + // if (in != null) + // in.close(); + // if (httpConn != null) + // httpConn.disconnect(); + //} + // + //output=output+"\n --------------------------------------------\n\n\n"; + // + // + //} + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + + + + + + + + + + + + // + // + // + // + // OkHttpClient client = new OkHttpClient(); + // //Check if the Platform is authorized, and add the authorization header + // this.isAuthorized(); + // headerMap.put("Authorization", this.getAuthHeader()); + // //Generate the proper url to be passed into the request + // HashMap options = new HashMap<>(); + // options.put("addServer", "true"); + // String apiUrl = apiURL(url, options); + // + // Request.Builder requestBuilder = new Request.Builder(); + // //Add all the headers to the Request.Builder from the headerMap + // for (Map.Entry entry : headerMap.entrySet()) { + // requestBuilder.addHeader(entry.getKey(), entry.getValue()); + // } + // Request request = null; + // if (method.toUpperCase().equals("GET")) { + // request = requestBuilder + // .url(apiUrl) + // .build(); + // } else if (method.toUpperCase().equals("DELETE")) { + // request = requestBuilder + // .url(apiUrl) + // .delete() + // .build(); + // } else { + // //For POST and PUT requests, find and set what MediaType the body is + // MediaType mediaType; + // if (headerMap.containsValue("application/json")) { + // mediaType = MediaType.parse(ContentTypeSelection.JSON_TYPE_MARKDOWN.toString()); + // } else if (headerMap.containsValue("multipart/mixed")) { + // mediaType = MediaType.parse(ContentTypeSelection.MULTIPART_TYPE_MARKDOWN.toString()); + // } else { + // mediaType =MediaType.parse(ContentTypeSelection.FORM_TYPE_MARKDOWN.toString()); + // } + // String bodyString = getBodyString(body, mediaType); + // if (method.toUpperCase().equals("POST")) { + // request = requestBuilder + // .url(apiUrl) + // .post(RequestBody.create(mediaType, bodyString)) + // .build(); + // } else if (method.toUpperCase().equals("PUT")) { + // request = requestBuilder + // .url(apiUrl) + // .put(RequestBody.create(mediaType, bodyString)) + // .build(); + // } + // } + // //Make OKHttp request call, that returns response to the callback + // client.newCall(request).enqueue(callback); + // } catch (Exception e) { + // e.printStackTrace(); + // } +} + +