ChypRiotE

EpitechAPi

Feb 1st, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.63 KB | None | 0 0
  1. package red.epiandroidv2.Model;
  2.  
  3. import android.app.Application;
  4.  
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.concurrent.ExecutionException;
  9.  
  10. import org.apache.http.NameValuePair;
  11. import org.apache.http.client.ClientProtocolException;
  12. import org.apache.http.client.entity.UrlEncodedFormEntity;
  13. import org.apache.http.client.methods.HttpPost;
  14. import org.apache.http.message.BasicNameValuePair;
  15.  
  16. import com.fasterxml.jackson.core.JsonFactory;
  17. import com.fasterxml.jackson.core.JsonParser;
  18. import com.fasterxml.jackson.core.JsonToken;
  19.  
  20. public class EpitechApi extends Application {
  21. private JsonFactory jFactory;
  22. private String token = null;
  23.  
  24. public EpitechApi() {
  25. this.jFactory = new JsonFactory();
  26. }
  27.  
  28. public void login(String login, String password) throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  29. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  30. nvps.add(new BasicNameValuePair("login", login));
  31. nvps.add(new BasicNameValuePair("password", password));
  32. JsonParser jp = jFactory.createParser(postRequest("login", nvps));
  33. jp.nextToken();
  34. while (jp.nextToken() != JsonToken.END_OBJECT) {
  35. String fieldname = jp.getCurrentName();
  36. jp.nextToken();
  37. if ("token".equals(fieldname))
  38. this.token = jp.getText();
  39. }
  40. }
  41. public ArrayList<Planning> getPlanning(String start, String end) throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  42. ArrayList<Planning> list = new ArrayList<Planning>();
  43. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  44. nvps.add(new BasicNameValuePair("token", this.token));
  45. nvps.add(new BasicNameValuePair("start", start));
  46. nvps.add(new BasicNameValuePair("end", end));
  47. String req = getRequest("planning", nvps);
  48. JsonParser jp = jFactory.createParser(req.substring(req.indexOf('['), req.lastIndexOf(']') + 1));
  49. while (jp.nextToken() != JsonToken.END_OBJECT && jp.getText() != "]") {
  50. Planning ev = new Planning();
  51. while (jp.nextToken() !=JsonToken.END_OBJECT) {
  52. if (jp.getText() == ("codemodule")) {
  53. jp.nextToken();
  54. ev.setCodemodule(jp.getText());
  55. } else if (jp.getText() == "titlemodule") {
  56. jp.nextToken();
  57. ev.setTitlemodule(jp.getText());
  58. } else if (jp.getText() == "title") {
  59. jp.nextToken();
  60. ev.setTitle(jp.getText());
  61. } else if (jp.getText() == "acti_title") {
  62. jp.nextToken();
  63. ev.setTitle(jp.getText());
  64. } else if (jp.getText() == "start") {
  65. jp.nextToken();
  66. ev.setStart(jp.getText());
  67. } else if (jp.getText() == "end") {
  68. jp.nextToken();
  69. ev.setEnd(jp.getText());
  70. } else if (jp.getText() == "codeevent") {
  71. jp.nextToken();
  72. ev.setCodeevent(jp.getText());
  73. } else if (jp.getText() == "codeacti") {
  74. jp.nextToken();
  75. ev.setCodeacti(jp.getText());
  76. } else if (jp.getText() == "codeinstance") {
  77. jp.nextToken();
  78. ev.setCodeinstance(jp.getText());
  79. } else if (jp.getText() == "scolaryear") {
  80. jp.nextToken();
  81. ev.setScolaryear(jp.getText());
  82. } else if (jp.getText() == "event_registered") {
  83. jp.nextToken();
  84. ev.setEvent_registered(jp.getText());
  85. } else if (jp.getText() == "allow_register") {
  86. jp.nextToken();
  87. ev.setAllow_register(jp.getBooleanValue());
  88. } else if (jp.getText() == "room") {
  89. while(jp.getText() != "code" && jp.getText() != "}") {jp.nextToken();}
  90. if (jp.getText() != "}") {
  91. jp.nextToken();
  92. ev.setRoom(jp.getText());
  93. jp.nextToken();
  94. }
  95. } else if (jp.getText() == "allow_token") {
  96. jp.nextToken();
  97. ev.setAllow_token(jp.getBooleanValue());
  98. } else if (jp.getText().equals("prof_inst")) {
  99. jp.nextToken();
  100. if (jp.getText() == "[") {while (jp.getText() != "]") {jp.nextToken();}
  101. } else if (jp.getText() == "null") {
  102. } else {while (jp.nextToken() !=JsonToken.END_OBJECT);}
  103. jp.nextToken();
  104. } else if (jp.getText().equals("rights")) {
  105. while (jp.nextToken() !=JsonToken.END_OBJECT);
  106. jp.nextToken();
  107. } else if (jp.getText().equals("maker")) {
  108. while (jp.nextToken() !=JsonToken.END_OBJECT);
  109. jp.nextToken();
  110. } else if (jp.getText().equals("owner")) {
  111. while (jp.nextToken() !=JsonToken.END_OBJECT);
  112. jp.nextToken();
  113. }
  114. }
  115. list.add(ev);
  116. }
  117. return list;
  118. }
  119. public ArrayList<Module> getModules() throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  120. ArrayList<Module> list = new ArrayList<Module>();
  121. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  122. nvps.add(new BasicNameValuePair("token", this.token));
  123. String req = getRequest("modules", nvps);
  124. JsonParser jp = jFactory.createParser(req.substring(req.indexOf('['), req.lastIndexOf(']') + 1));
  125. while (jp.nextToken() != JsonToken.END_OBJECT && jp.getText() != "]") {
  126. Module mod = new Module();
  127. while (jp.nextToken() !=JsonToken.END_OBJECT) {
  128. if (jp.getText() == "codemodule") {
  129. jp.nextToken();
  130. mod.setCodemodule(jp.getText());
  131. } else if (jp.getText() == "title") {
  132. jp.nextToken();
  133. mod.setTitle(jp.getText());
  134. } else if (jp.getText() == "credits") {
  135. jp.nextToken();
  136. mod.setCredits(jp.getLongValue());
  137. } else if (jp.getText() == "grade") {
  138. jp.nextToken();
  139. mod.setGrade(jp.getText());
  140. } else if (jp.getText() == "codeinstance") {
  141. jp.nextToken();
  142. mod.setCodeinstance(jp.getText());
  143. }
  144. }
  145. list.add(mod);
  146. }
  147. return list;
  148. }
  149. public ArrayList<Message> getMessages() throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  150. ArrayList<Message> list = new ArrayList<Message>();
  151. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  152. nvps.add(new BasicNameValuePair("token", this.token));
  153. String req = getRequest("messages", nvps);
  154. JsonParser jp = jFactory.createParser(req);
  155. jp.nextToken();
  156. while (jp.getCurrentToken() !=JsonToken.END_OBJECT && jp.getText() != "]") {
  157. Message msg = new Message();
  158. while (jp.nextToken() != JsonToken.END_OBJECT) {
  159. if (jp.getText().equals("title")) {
  160. jp.nextToken();
  161. msg.setTitle(jp.getText());
  162. } else if (jp.getText().equals("user")) {
  163. while (jp.nextToken() !=JsonToken.END_OBJECT);
  164. } else if (jp.getText().equals("content")) {
  165. jp.nextToken();
  166. msg.setContent(jp.getText());
  167. } else if (jp.getText().equals("date")) {
  168. jp.nextToken();
  169. msg.setDate(jp.getText());
  170. }
  171. }
  172. jp.nextToken();
  173. list.add(msg);
  174. }
  175. return list;
  176. }
  177. public ArrayList<Mark> getMarks() throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  178. ArrayList<Mark> list = new ArrayList<Mark>();
  179. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  180. nvps.add(new BasicNameValuePair("token", this.token));
  181. String req = getRequest("marks", nvps);
  182. JsonParser jp = jFactory.createParser(req.substring(req.indexOf('['), req.lastIndexOf(']') + 1));
  183. while (jp.nextToken() != JsonToken.END_OBJECT && jp.getText() != "]") {
  184. Mark mk= new Mark();
  185. while (jp.nextToken() !=JsonToken.END_OBJECT) {
  186. if (jp.getText() == ("codemodule")) {
  187. jp.nextToken();
  188. mk.setCodemodule(jp.getText());
  189. } else if (jp.getText() == "titlemodule") {
  190. jp.nextToken();
  191. mk.setTitlemodule(jp.getText());
  192. } else if (jp.getText() == "title") {
  193. jp.nextToken();
  194. mk.setTitle(jp.getText());
  195. } else if (jp.getText() == "date") {
  196. jp.nextToken();
  197. mk.setDate(jp.getText());
  198. } else if (jp.getText() == "final_note") {
  199. jp.nextToken();
  200. mk.setFinal_note(jp.getFloatValue());
  201. } else if (jp.getText() == "comment") {
  202. jp.nextToken();
  203. mk.setComment(jp.getText());
  204. }
  205. }
  206. list.add(mk);
  207. }
  208. return list;
  209. }
  210. public User getUser() throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  211. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  212. nvps.add(new BasicNameValuePair("token", this.token));
  213. String req = getRequest("infos", nvps);
  214. JsonParser jp = jFactory.createParser(req);
  215. User usr = new User();
  216. while (jp.nextToken() != JsonToken.END_OBJECT) {
  217. if (jp.getText() == "ip") {
  218. while (jp.getText() != "infos") {jp.nextToken();}
  219. }
  220. if (jp.getText() == "id") {
  221. jp.nextToken();
  222. usr.setId(jp.getText());
  223. } else if (jp.getText() == "title") {
  224. jp.nextToken();
  225. usr.setTitle(jp.getText());
  226. } else if (jp.getText() == "promo") {
  227. jp.nextToken();
  228. usr.setPromo(jp.getText());
  229. } else if (jp.getText() == "login") {
  230. jp.nextToken();
  231. usr.setLogin(jp.getText());
  232. } else if (jp.getText() == "picture") {
  233. jp.nextToken();
  234. usr.setPicture("https://cdn.local.epitech.eu/userprofil/" + jp.getText());
  235. } else if (jp.getText() == "achieved") {
  236. jp.nextToken();
  237. usr.setCredits(jp.getLongValue());
  238. } else if (jp.getText() == "active_log") {
  239. jp.nextToken();
  240. usr.setActive_log(jp.getText());
  241. } else if (jp.getText() == "rights") {
  242. while (jp.nextToken() != JsonToken.END_OBJECT);
  243. } else if (jp.getText() == "decoded") {
  244. while (jp.getText() != "{") {jp.nextToken();}
  245. }
  246. }
  247. return usr;
  248. }
  249. public void enterToken(Planning pl, String addtoken) throws InterruptedException, ExecutionException, IOException {
  250. List <NameValuePair> nvps = new ArrayList <NameValuePair>();
  251. nvps.add(new BasicNameValuePair("token", this.token));
  252. nvps.add(new BasicNameValuePair("scolaryear", pl.getScolaryear()));
  253. nvps.add(new BasicNameValuePair("codemodule", pl.getCodemodule()));
  254. nvps.add(new BasicNameValuePair("codeinstance", pl.getCodeinstance()));
  255. nvps.add(new BasicNameValuePair("codeacti", pl.getCodeacti()));
  256. nvps.add(new BasicNameValuePair("codeevent", pl.getCodeevent()));
  257. nvps.add(new BasicNameValuePair("tokenvalidationcode", addtoken));
  258. JsonParser jp = jFactory.createParser(postRequest("token", nvps));
  259.  
  260. }
  261.  
  262. // Gestion des requetes HTTP
  263. public String postRequest(String location, List<NameValuePair> values) throws ClientProtocolException, IOException, ExecutionException, InterruptedException {
  264. HttpPost httpPost = new HttpPost("http://epitech-api.herokuapp.com/" + location);
  265. httpPost.setEntity(new UrlEncodedFormEntity(values));
  266.  
  267. return new postAsyncTask().execute(httpPost).get();
  268. }
  269. public String getRequest(String location, List<NameValuePair> values) throws IOException, ExecutionException, InterruptedException {
  270. String url = "http://epitech-api.herokuapp.com/" + location + "?";
  271. if (values != null) {
  272. for(int i = 0; i != values.size(); i++) {
  273. NameValuePair pair = values.get(i);
  274. if (i != 0) {url += "&";}
  275. url += pair.getName() + "=" + pair.getValue();
  276. }
  277. }
  278. System.out.println(url);
  279. return new getAsyncTask().execute(url).get();
  280. }
  281. }
Add Comment
Please, Sign In to add comment