-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
139 lines (124 loc) · 4 KB
/
script.js
File metadata and controls
139 lines (124 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
console.log("Hello World!");
// utility functions
// 1. function to get dom element from string
function getElementFromString(string) {
let div = document.createElement("div");
div.innerHTML = string;
return div.firstElementChild;
}
// initialize no of parameters
let addedParamsCount = 0;
// hide the parameters box initially
let parametersbox = document.getElementById("parametersBox");
parametersbox.style.display = "none";
// if the user clicks on params box, hide json box
let paramsRadio = document.getElementById("paramsRadio");
paramsRadio.addEventListener("click", () => {
document.getElementById("requestJsonBox").style.display = "none";
document.getElementById("parametersBox").style.display = "block";
});
// if the user clicks on json box, hide params box
let jsonRadio = document.getElementById("jsonRadio");
jsonRadio.addEventListener("click", () => {
document.getElementById("parametersBox").style.display = "none";
document.getElementById("requestJsonBox").style.display = "block";
});
// adding plus button functionality
let addParam = document.getElementById("addParam");
addParam.addEventListener("click", () => {
let params = document.getElementById("params");
let string = `<div class="form-row my-2">
<label for="url" class="col-sm-2 col-form-label">Parameter ${
addedParamsCount + 2
}</label>
<div class="col-md-4">
<input type="text" class="form-control" id="parameterKey${
addedParamsCount + 2
}" placeholder="Enter Parameter ${
addedParamsCount + 2
} key">
</div>
<div class="col-md-4">
<input type="text" class="form-control" id="parameterValue${
addedParamsCount + 2
}" placeholder="Enter Parameter ${
addedParamsCount + 2
} Value">
</div>
<button class="btn btn-primary deleteParam"> - </button>
</div>`;
// convert the string element to dom element
let paramElement = getElementFromString(string);
params.appendChild(paramElement);
// adding minus button functionality
let deleteParam = document.getElementsByClassName("deleteParam");
for (item of deleteParam) {
item.addEventListener("click", (e) => {
e.target.parentElement.remove();
});
}
addedParamsCount++;
});
// adding submit button functionality
let submit = document.getElementById("submit");
submit.addEventListener("click", () => {
document.getElementById("responseJsontext").value =
"Please wait...fetching response...";
// fetching all user entered values
let url = document.getElementById("url").value;
let requestType = document.querySelector(
"input[name='requestType']:checked"
).value;
let contentType = document.querySelector(
"input[name='contentType']:checked"
).value;
// if user has used params option instead of json, collect all the parameters in an object
if (contentType == "params") {
data = {};
for (i = 0; i < addedParamsCount + 1; i++) {
if (
document.getElementById("parameterKey" + (i + 1)) != undefined
) {
let key = document.getElementById(
"parameterKey" + (i + 1)
).value;
let value = document.getElementById(
"parameterValue" + (i + 1)
).value;
data[key] = value;
}
}
data = JSON.stringify(data);
} else {
data = document.getElementById("requestJsonText").value;
}
// log all the values for debugging
console.log("URL is ", url);
console.log("requestType is ", requestType);
console.log("contentType is ", contentType);
console.log("data is ", data);
// if the request is get
if (requestType == "GET") {
fetch(url, {
method: "GET",
})
.then((response) => response.text())
.then((text) => {
document.getElementById("responseJsontext").value = text;
});
}
// for post request
else {
fetch(url, {
method: "POST",
body: data,
headers: {
"Content-type": "application/json; charset=UTF-8",
}
})
.then((response) => response.text())
.then((text) => {
document.getElementById("responseJsontext").value = text;
});
}
});