fork download
  1. import com.google.gson.Gson;
  2. import com.google.gson.JsonArray;
  3. import com.google.gson.JsonObject;
  4. import com.google.gson.JsonParser;
  5. import io.restassured.RestAssured;
  6. import io.restassured.http.ContentType;
  7. import io.restassured.path.json.JsonPath;
  8. import io.restassured.response.Response;
  9.  
  10. import java.util.ArrayList;
  11.  
  12. import static io.restassured.RestAssured.given;
  13.  
  14. public class Server {
  15.  
  16. Gson gson = new Gson();
  17. JsonParser parser = new JsonParser();
  18.  
  19. private String clientName;
  20. private String restUrl;
  21. private String username;
  22. private String password;
  23. private boolean useRelaxedHTTP = false;
  24. private String persona = "admin";
  25. private String xAuthToken;
  26. private JsonArray templateJsonArray;
  27. private ArrayList<Template> templates = new ArrayList<>();
  28.  
  29. public Server(String clientName, String restUrl, String username, String password) {
  30. this.clientName = clientName;
  31. this.restUrl = restUrl;
  32. this.username = username;
  33. this.password = password;
  34. }
  35.  
  36. public void connect() {
  37. RestAssured.baseURI = this.restUrl;
  38.  
  39. if (useRelaxedHTTP) {
  40. RestAssured.useRelaxedHTTPSValidation(); // Ignores SSL issues for testing on lab server, not needed for real cloud servers
  41. }
  42. String loginBody = "{" +
  43. "\"password\":\"" + this.password + "\"," +
  44. "\"user_id\":\"" + this.username + "\"," +
  45. "\"persona\":\"" + this.persona + "\"" +
  46. "}";
  47. System.out.println("LoginBody: " + loginBody);
  48.  
  49. Response loginResponse = given().
  50. contentType(ContentType.JSON).
  51. body(loginBody).
  52. when().
  53. put("/session/login");
  54.  
  55.  
  56. String loginResponseString = loginResponse.asString();
  57. System.out.println(loginResponseString);
  58. JsonPath loginResponseJson = new JsonPath(loginResponseString);
  59. this.xAuthToken = (loginResponseJson.get("X-Auth-Token"));
  60. }
  61.  
  62. public void getJsonTemplateArrayFromRestApi() {
  63. RestAssured.baseURI = this.restUrl;
  64.  
  65. Response getTemplatesResponse = null;
  66. boolean noResponse = true;
  67.  
  68. while (noResponse) {
  69.  
  70. try {
  71. getTemplatesResponse = given().
  72. contentType(ContentType.JSON).
  73. header("X-Auth-Token", this.xAuthToken).
  74. when().
  75. get("/templates/search");
  76.  
  77. int statusCode = getTemplatesResponse.getStatusCode();
  78.  
  79. if (statusCode == 200) {
  80. noResponse = false;
  81. } else {
  82. System.out.println("Status Code: " + statusCode);
  83. System.out.println(getTemplatesResponse.asString());
  84. }
  85. } catch (Exception e) {
  86. e.printStackTrace();
  87. }
  88. }
  89.  
  90. String getTemplateResponseString = getTemplatesResponse.asString();
  91. JsonObject getTemplateResponseDataObject = this.parser.parse(getTemplateResponseString).getAsJsonObject();
  92. this.templateJsonArray = getTemplateResponseDataObject.get("data").getAsJsonArray();
  93. }
  94.  
  95. public void printTemplateList() {
  96.  
  97. for (int x = 0; x < this.templateJsonArray.size(); x++) {
  98. String nameTitle = "Name: ";
  99. String idTitle = "ID: ";
  100. String wsName = this.templateJsonArray.get(x).getAsJsonObject().get("name").getAsString();
  101. String wsID = this.templateJsonArray.get(x).getAsJsonObject().get("workspace_id").getAsString();
  102. System.out.format("%-5s |%-10s %-40s|%-10s %-20s|%n", x + ")", nameTitle, wsName, idTitle, wsID);
  103. }
  104. }
  105.  
  106. public void saveTemplatesFromJsonArray() {
  107.  
  108. for (int x = 0; x < this.templateJsonArray.size(); x++) {
  109. this.templates.add(new Template(this.templateJsonArray.get(x).getAsJsonObject()));
  110. }
  111. }
  112.  
  113. public void getAndSaveAllFoldersFromJsonArray(){
  114.  
  115. // for(int x = 0; x < templates.size(); x++){
  116. for(int x = 1; x < 2; x++){ //run once as test
  117.  
  118. Template currentTemplate = this.templates.get(x);
  119. // Folder currentSubfolder;
  120.  
  121. if (currentTemplate.hasSubfolders()){
  122. getSubfoldersJsonArrayFromRestApi(currentTemplate);
  123.  
  124. for (int y = 0; y < currentTemplate.getFoldersJsonArray().size(); y++) { // for each template (x) in 'templates' get foldersJsonArray.size and for each folder
  125.  
  126. JsonObject fullSubfolderProfileObject = getFolderProfileFromRestApi(currentTemplate.getFoldersJsonArray().get(y).getAsJsonObject());
  127. // System.out.println(fullSubfolderProfileObject);
  128. Folder currentSubfolder = currentTemplate.addSubfolder(fullSubfolderProfileObject);
  129. if (currentSubfolder.hasSubfolders()) {
  130. saveSubfoldersRecursively(currentSubfolder);
  131. }
  132. if (currentSubfolder.getId().equals("Active!422") ) {
  133. System.out.println("inside if");
  134. System.out.println("access test 1: " + currentSubfolder.getId() + " subfolder at index 0: " + currentSubfolder.getSubFolders().get(0));
  135. System.out.println("access test 2: " + getSingleTemplate(1).getSubFolders().get(0).getSubFolders().get(0) + " subfolder at index 0: " + currentSubfolder.getSubFolders().get(0));
  136. }
  137. }
  138. }
  139. }
  140. System.out.println("in getAndSaveAllFoldersFromJsonArray test at end");
  141. System.out.println("access test 1: " + getSingleTemplate(1).getSubFolders().get(0).getId() + " subfolder at index 0: " + getSingleTemplate(1).getSubFolders().get(0).getSubFolders().get(0).toString());
  142. }
  143.  
  144. public void saveSubfoldersRecursively(Folder folder){
  145.  
  146. if (folder.hasSubfolders()){
  147. getSubfoldersJsonArrayFromRestApi(folder);
  148.  
  149. for(int x = 0; x < folder.getFoldersJsonArray().size(); x++) {
  150. JsonObject currentSubfolderJsonArrayObject = folder.getFoldersJsonArray().get(x).getAsJsonObject();
  151. JsonObject fullSubfolderProfileObject = getFolderProfileFromRestApi(currentSubfolderJsonArrayObject);
  152. Folder newSubfolder = folder.addSubfolder(fullSubfolderProfileObject);
  153. if (newSubfolder.hasSubfolders()) {
  154. saveSubfoldersRecursively(newSubfolder);
  155. }
  156. }
  157. if (folder.getId().equals("Active!422") ) {
  158. System.out.println("inside saveSubfoldersRecursively");
  159. System.out.println("access test 1: " + folder.getId() + " subfolder at index 0: " + folder.getSubFolders().get(0));
  160. //System.out.println("access test 2: " + getSingleTemplate(1).getSubFolders().get(0).getId() + " subfolder at index 0: " + getSingleTemplate(1).getSubFolders().get(0).getSubFolders().get(0).toString());
  161. }
  162. }
  163. }
  164.  
  165. public JsonObject getFolderProfileFromRestApi(JsonObject folderProfileObject){
  166.  
  167. RestAssured.baseURI = this.restUrl;
  168.  
  169. Response getFolderProfileResponse = null;
  170. boolean noResponse = true;
  171.  
  172. System.out.println("getFolderProfileFromRestApi - " + folderProfileObject.get("id").getAsString());
  173.  
  174. while (noResponse) {
  175.  
  176. try {
  177. getFolderProfileResponse = given().
  178. contentType(ContentType.JSON).
  179. header("X-Auth-Token", this.xAuthToken).
  180. when().
  181. get("/folders/" + folderProfileObject.get("id").getAsString());
  182.  
  183. int statusCode = getFolderProfileResponse.getStatusCode();
  184.  
  185. if (statusCode == 200) {
  186. noResponse = false;
  187. } else {
  188. System.out.println("Status Code: " + statusCode);
  189. System.out.println(getFolderProfileResponse.asString());
  190. }
  191. } catch (Exception e) {
  192. e.printStackTrace();
  193. }
  194. }
  195.  
  196. String getFolderProfileResponseString = getFolderProfileResponse.asString();
  197. JsonObject getFolderProfileResponseDataObject = parser.parse(getFolderProfileResponseString).getAsJsonObject();
  198.  
  199. return getFolderProfileResponseDataObject.get("data").getAsJsonObject();
  200. }
  201.  
  202. public void printTemplateProfile(int x) {
  203. System.out.println(this.templates.get(x).toString());
  204. }
  205.  
  206. public void getSubfoldersJsonArrayFromRestApi(IMContainer container) {
  207. if (container.hasSubfolders() == true) {
  208. RestAssured.baseURI = this.restUrl;
  209.  
  210. Response getFoldersResponse = null;
  211. boolean noResponse = true;
  212.  
  213. while (noResponse) {
  214.  
  215. try {
  216. getFoldersResponse = given().
  217. contentType(ContentType.JSON).
  218. header("X-Auth-Token", this.xAuthToken).
  219. when().
  220. get("/" + container.getWsType() + "s/" + container.getId() + "/children"); //wsType is "folder" for folders and tabs and "workspace" for templates which corresponds to the endpoint needed.
  221.  
  222. int statusCode = getFoldersResponse.getStatusCode();
  223.  
  224. if (statusCode == 200) {
  225. noResponse = false;
  226. } else {
  227. System.out.println("Status Code: " + statusCode);
  228. System.out.println(getFoldersResponse.asString());
  229. }
  230. } catch (Exception e) {
  231. e.printStackTrace();
  232. }
  233. }
  234.  
  235. String getFoldersResponseString = getFoldersResponse.asString();
  236. JsonObject getTemplateResponseDataObject = parser.parse(getFoldersResponseString).getAsJsonObject();
  237. container.setFoldersJsonArray(getTemplateResponseDataObject.get("data").getAsJsonArray());
  238. }
  239. }
  240.  
  241. public void printStructure(IMContainer container, String indent){
  242.  
  243. System.out.println(indent + container.getName());
  244.  
  245. if (container.hasSubfolders()){
  246.  
  247. for (Folder subFolder: container.getSubFolders())
  248. printStructure(subFolder, indent + " ");
  249. }
  250.  
  251.  
  252.  
  253. }
  254.  
  255. public void printFolderList(IMContainer template) {
  256.  
  257. if (template.hasSubfolders()) {
  258. for (int x = 0; x < template.getSubFolders().size(); x++) {
  259. String nameTitle = "Name: ";
  260. String idTitle = "ID: ";
  261. String folderName = template.getSubFolders().get(x).getName();
  262. String folderID = template.getSubFolders().get(x).getId();
  263. System.out.format("%-5s |%-10s %-40s|%-10s %-20s|%n", x + ")", nameTitle, folderName, idTitle, folderID);
  264. }
  265. }
  266. }
  267.  
  268.  
  269. //<editor-fold desc="Getters"
  270.  
  271.  
  272. public Template getSingleTemplate(int x){
  273. return templates.get(x);
  274. }
  275.  
  276. public String getClientName() {
  277. return clientName;
  278. }
  279.  
  280. public String getRestUrl() {
  281. return restUrl;
  282. }
  283.  
  284. public String getUsername() {
  285. return username;
  286. }
  287.  
  288. public String getPassword() {
  289. return password;
  290. }
  291.  
  292. public boolean isUseRelaxedHTTP() {
  293. return useRelaxedHTTP;
  294. }
  295.  
  296. public String getPersona() {
  297. return persona;
  298. }
  299.  
  300. public String getxAuthToken() {
  301. return xAuthToken;
  302. }
  303.  
  304. //</editor-fold>
  305.  
  306. //<editor-fold desc="Setters"
  307.  
  308. public void setClientName(String clientName) {
  309. this.clientName = clientName;
  310. }
  311.  
  312. public void setRestUrl(String restUrl) {
  313. this.restUrl = restUrl;
  314. }
  315.  
  316. public void setUsername(String username) {
  317. this.username = username;
  318. }
  319.  
  320. public void setPassword(String password) {
  321. this.password = password;
  322. }
  323.  
  324. public void setUseRelaxedHTTP(boolean useRelaxedHTTP) {
  325. this.useRelaxedHTTP = useRelaxedHTTP;
  326. }
  327.  
  328. public void setPersona(String persona) {
  329. this.persona = persona;
  330. }
  331.  
  332. public void setxAuthToken(String xAuthToken) {
  333. this.xAuthToken = xAuthToken;
  334. }
  335.  
  336. //</editor-fold>
  337. }
  338.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:14: error: class Server is public, should be declared in a file named Server.java
public class Server {
       ^
Main.java:1: error: package com.google.gson does not exist
import com.google.gson.Gson;
                      ^
Main.java:2: error: package com.google.gson does not exist
import com.google.gson.JsonArray;
                      ^
Main.java:3: error: package com.google.gson does not exist
import com.google.gson.JsonObject;
                      ^
Main.java:4: error: package com.google.gson does not exist
import com.google.gson.JsonParser;
                      ^
Main.java:5: error: package io.restassured does not exist
import io.restassured.RestAssured;
                     ^
Main.java:6: error: package io.restassured.http does not exist
import io.restassured.http.ContentType;
                          ^
Main.java:7: error: package io.restassured.path.json does not exist
import io.restassured.path.json.JsonPath;
                               ^
Main.java:8: error: package io.restassured.response does not exist
import io.restassured.response.Response;
                              ^
Main.java:12: error: package io.restassured does not exist
import static io.restassured.RestAssured.given;
                            ^
Main.java:12: error: static import only from classes and interfaces
import static io.restassured.RestAssured.given;
^
Main.java:16: error: cannot find symbol
    Gson gson = new Gson();
    ^
  symbol:   class Gson
  location: class Server
Main.java:17: error: cannot find symbol
    JsonParser parser = new JsonParser();
    ^
  symbol:   class JsonParser
  location: class Server
Main.java:26: error: cannot find symbol
    private JsonArray templateJsonArray;
            ^
  symbol:   class JsonArray
  location: class Server
Main.java:27: error: cannot find symbol
    private ArrayList<Template> templates = new ArrayList<>();
                      ^
  symbol:   class Template
  location: class Server
Main.java:144: error: cannot find symbol
    public void saveSubfoldersRecursively(Folder folder){
                                          ^
  symbol:   class Folder
  location: class Server
Main.java:165: error: cannot find symbol
    public JsonObject getFolderProfileFromRestApi(JsonObject folderProfileObject){
                                                  ^
  symbol:   class JsonObject
  location: class Server
Main.java:165: error: cannot find symbol
    public JsonObject getFolderProfileFromRestApi(JsonObject folderProfileObject){
           ^
  symbol:   class JsonObject
  location: class Server
Main.java:206: error: cannot find symbol
    public void getSubfoldersJsonArrayFromRestApi(IMContainer container) {
                                                  ^
  symbol:   class IMContainer
  location: class Server
Main.java:241: error: cannot find symbol
    public void printStructure(IMContainer container, String indent){
                               ^
  symbol:   class IMContainer
  location: class Server
Main.java:255: error: cannot find symbol
    public void printFolderList(IMContainer template) {
                                ^
  symbol:   class IMContainer
  location: class Server
Main.java:272: error: cannot find symbol
    public Template getSingleTemplate(int x){
           ^
  symbol:   class Template
  location: class Server
Main.java:16: error: cannot find symbol
    Gson gson = new Gson();
                    ^
  symbol:   class Gson
  location: class Server
Main.java:17: error: cannot find symbol
    JsonParser parser = new JsonParser();
                            ^
  symbol:   class JsonParser
  location: class Server
Main.java:37: error: cannot find symbol
        RestAssured.baseURI = this.restUrl;
        ^
  symbol:   variable RestAssured
  location: class Server
Main.java:40: error: cannot find symbol
            RestAssured.useRelaxedHTTPSValidation();                                                                       // Ignores SSL issues for testing on lab server, not needed for real cloud servers
            ^
  symbol:   variable RestAssured
  location: class Server
Main.java:49: error: cannot find symbol
        Response loginResponse = given().
        ^
  symbol:   class Response
  location: class Server
Main.java:50: error: cannot find symbol
                contentType(ContentType.JSON).
                            ^
  symbol:   variable ContentType
  location: class Server
Main.java:49: error: cannot find symbol
        Response loginResponse = given().
                                 ^
  symbol:   method given()
  location: class Server
Main.java:58: error: cannot find symbol
        JsonPath loginResponseJson = new JsonPath(loginResponseString);
        ^
  symbol:   class JsonPath
  location: class Server
Main.java:58: error: cannot find symbol
        JsonPath loginResponseJson = new JsonPath(loginResponseString);
                                         ^
  symbol:   class JsonPath
  location: class Server
Main.java:63: error: cannot find symbol
        RestAssured.baseURI = this.restUrl;
        ^
  symbol:   variable RestAssured
  location: class Server
Main.java:65: error: cannot find symbol
        Response getTemplatesResponse = null;
        ^
  symbol:   class Response
  location: class Server
Main.java:72: error: cannot find symbol
                        contentType(ContentType.JSON).
                                    ^
  symbol:   variable ContentType
  location: class Server
Main.java:71: error: cannot find symbol
                getTemplatesResponse = given().
                                       ^
  symbol:   method given()
  location: class Server
Main.java:91: error: cannot find symbol
        JsonObject getTemplateResponseDataObject = this.parser.parse(getTemplateResponseString).getAsJsonObject();
        ^
  symbol:   class JsonObject
  location: class Server
Main.java:109: error: cannot find symbol
            this.templates.add(new Template(this.templateJsonArray.get(x).getAsJsonObject()));
                                   ^
  symbol:   class Template
  location: class Server
Main.java:118: error: cannot find symbol
            Template currentTemplate = this.templates.get(x);
            ^
  symbol:   class Template
  location: class Server
Main.java:126: error: cannot find symbol
                    JsonObject fullSubfolderProfileObject = getFolderProfileFromRestApi(currentTemplate.getFoldersJsonArray().get(y).getAsJsonObject());
                    ^
  symbol:   class JsonObject
  location: class Server
Main.java:128: error: cannot find symbol
                   Folder currentSubfolder = currentTemplate.addSubfolder(fullSubfolderProfileObject);
                   ^
  symbol:   class Folder
  location: class Server
Main.java:150: error: cannot find symbol
                JsonObject currentSubfolderJsonArrayObject = folder.getFoldersJsonArray().get(x).getAsJsonObject();
                ^
  symbol:   class JsonObject
  location: class Server
Main.java:151: error: cannot find symbol
                JsonObject fullSubfolderProfileObject = getFolderProfileFromRestApi(currentSubfolderJsonArrayObject);
                ^
  symbol:   class JsonObject
  location: class Server
Main.java:152: error: cannot find symbol
                Folder newSubfolder = folder.addSubfolder(fullSubfolderProfileObject);
                ^
  symbol:   class Folder
  location: class Server
Main.java:167: error: cannot find symbol
            RestAssured.baseURI = this.restUrl;
            ^
  symbol:   variable RestAssured
  location: class Server
Main.java:169: error: cannot find symbol
            Response getFolderProfileResponse = null;
            ^
  symbol:   class Response
  location: class Server
Main.java:178: error: cannot find symbol
                            contentType(ContentType.JSON).
                                        ^
  symbol:   variable ContentType
  location: class Server
Main.java:177: error: cannot find symbol
                    getFolderProfileResponse = given().
                                               ^
  symbol:   method given()
  location: class Server
Main.java:197: error: cannot find symbol
            JsonObject getFolderProfileResponseDataObject = parser.parse(getFolderProfileResponseString).getAsJsonObject();
            ^
  symbol:   class JsonObject
  location: class Server
Main.java:208: error: cannot find symbol
            RestAssured.baseURI = this.restUrl;
            ^
  symbol:   variable RestAssured
  location: class Server
Main.java:210: error: cannot find symbol
            Response getFoldersResponse = null;
            ^
  symbol:   class Response
  location: class Server
Main.java:217: error: cannot find symbol
                            contentType(ContentType.JSON).
                                        ^
  symbol:   variable ContentType
  location: class Server
Main.java:216: error: cannot find symbol
                    getFoldersResponse = given().
                                         ^
  symbol:   method given()
  location: class Server
Main.java:236: error: cannot find symbol
            JsonObject getTemplateResponseDataObject = parser.parse(getFoldersResponseString).getAsJsonObject();
            ^
  symbol:   class JsonObject
  location: class Server
Main.java:247: error: cannot find symbol
            for (Folder subFolder: container.getSubFolders())
                 ^
  symbol:   class Folder
  location: class Server
54 errors
stdout
Standard output is empty