Skip to content

Commit fadd541

Browse files
committed
adding more API Quick links
1 parent 3e4e178 commit fadd541

3 files changed

Lines changed: 145 additions & 51 deletions

File tree

.DS_Store

0 Bytes
Binary file not shown.

src/angular/src/app/pages/account/account.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export class AccountComponent implements OnInit {
4545

4646

4747
ngOnInit() {
48+
//console.log(chrome.runtime.getManifest())
4849
//console.log(this.cookies)
4950
this.sessions = [];
5051
chrome.cookies.getAll({}, (cookies) => {

src/angular/src/app/pages/api/api.component.ts

Lines changed: 144 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1+
import { group } from '@angular/animations';
12
import { Component, Inject, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
23
import { TAB_URL } from '../../providers/tab-url.provider';
34

5+
export interface linkElement {
6+
url: string,
7+
name: string
8+
}
9+
410
@Component({
511
selector: 'app-api',
612
templateUrl: 'api.component.html',
@@ -11,8 +17,7 @@ export class ApiComponent implements OnInit {
1117
message: string;
1218
mist_url: string = "";
1319

14-
api_url_obj: string = "";
15-
api_url_stats_obj: string = "";
20+
quick_links: linkElement[] = []
1621

1722
org_id: string = "";
1823
site_id: string = "";
@@ -41,151 +46,239 @@ export class ApiComponent implements OnInit {
4146
////////////
4247
// API URL
4348
////////////
44-
forgeOrg(groups: { [key: string]: string; }, obj: string, extra_param: string): string {
49+
forgeOrg(groups: { [key: string]: string; }, obj: string, extra_param: string): void {
4550
let url = "";
46-
this.obj_name = obj.substr(0, obj.length - 1).toUpperCase();
4751
if (groups.detail) {
52+
// set IDS
4853
this.obj_id = groups.uuid_1;
54+
// set QUICK LINK
4955
url = "https://api." + groups.host + "/api/v1/orgs/" + groups.org_id + "/" + obj + "/" + groups.uuid_1;
56+
this.quick_links.push({ url: url, name: this.obj_name })
5057
} else {
58+
// set QUICK LINK
5159
url = "https://api." + groups.host + "/api/v1/orgs/" + groups.org_id + "/" + obj;
5260
if (extra_param) url += "?" + extra_param
61+
if (this.obj_name == "switch") {
62+
this.obj_name = "switches"
63+
} else {
64+
this.obj_name += "s"
65+
}
66+
this.quick_links.push({ url: url, name: this.obj_name})
5367
}
54-
return url;
5568
}
56-
forgeOrgStats(groups: { [key: string]: string; }, obj: string, extra_param: string): string {
69+
forgeOrgStats(groups: { [key: string]: string; }, obj: string, extra_param: string): void {
5770
let url = "";
5871
if (groups.detail && groups.detail != "new") {
72+
// set IDS
5973
this.obj_id = groups.uuid_1;
74+
// set QUICK LINK
6075
url = "https://api." + groups.host + "/api/v1/orgs/" + groups.org_id + "/stats/" + obj + "/" + groups.uuid_1;
76+
this.quick_links.push({ url: url, name: this.obj_name + " STATS" })
6177
}
62-
return url;
6378
}
64-
forgeSite(groups: { [key: string]: string; }, obj: string, extra_param: string): string {
79+
forgeSite(groups: { [key: string]: string; }, obj: string, extra_param: string): void {
6580
let url = "";
66-
this.obj_name = obj.substr(0, obj.length - 1).toUpperCase();
6781
if (groups.detail && groups.detail != "new") {
82+
// set IDS
6883
this.obj_id = groups.uuid_1;
6984
this.site_id = groups.uuid_2;
85+
// set QUICK LINK
7086
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_2 + "/" + obj + "/" + groups.uuid_1;
87+
this.quick_links.push({ url: url, name: this.obj_name })
88+
if (this.obj_name == "switch") {
89+
this.quick_links.push({ url: url + "/config_cmd", name: this.obj_name + " CMDS" })
90+
}
7191
} else {
92+
// set IDS
7293
this.site_id = groups.uuid_1;
94+
// set QUICK LINK
7395
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_1 + "/" + obj;
74-
if (extra_param) url += "?" + extra_param
96+
if (extra_param) url += "?" + extra_param
97+
if (this.obj_name == "switch") {
98+
this.obj_name = "switches"
99+
} else {
100+
this.obj_name += "s"
101+
}
102+
this.quick_links.push({ url: url, name: this.obj_name})
75103
}
76-
return url;
77104
}
78-
forgeSiteStats(groups: { [key: string]: string; }, obj: string, extra_param: string): string {
105+
forgeSiteStats(groups: { [key: string]: string; }, obj: string, extra_param: string): void {
79106
let url = "";
80-
this.obj_name = obj.substr(0, obj.length - 1).toUpperCase();
81107
if (groups.detail && groups.detail != "new") {
108+
// set IDS
82109
this.obj_id = groups.uuid_1;
83110
this.site_id = groups.uuid_2;
111+
// set QUICK LINK
84112
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_2 + "/stats/" + obj + "/" + groups.uuid_1;
113+
this.quick_links.push({ url: url, name: this.obj_name + " STATS" })
85114
} else {
115+
// set IDS
86116
this.site_id = groups.uuid_1;
117+
// set QUICK LINK
87118
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_1 + "/stats/" + obj;
88119
if (extra_param) url += "?" + extra_param
120+
this.quick_links.push({ url: url, name: this.obj_name + " STATS" })
121+
}
122+
}
123+
124+
forgeDeviceEvents(groups: { [key: string]: string; }, obj: string, extra_param: string): void {
125+
let url = "";
126+
if (groups.detail && groups.detail != "new") {
127+
// MAC
128+
const splitted_uuid = groups.uuid_1.split("-")
129+
const mac = splitted_uuid[splitted_uuid.length - 1]
130+
// set QUICK LINK
131+
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_2 + "/devices/events/search?limit=1000&device_type=switch&duration=1d&mac=" + mac
132+
this.quick_links.push({ url: url, name: this.obj_name + " EVENTS" })
133+
} else {
134+
url = "https://api." + groups.host + "/api/v1/sites/" + groups.uuid_1 + "/devices/events/search?limit=1000&device_type=switch&duration=1d&device_type=" + obj
135+
this.quick_links.push({ url: url, name: this.obj_name + " EVENTS" })
89136
}
90-
return url;
91137
}
92138

139+
93140
generateApiUrl() {
94-
this.api_url_obj = "";
95-
this.api_url_stats_obj = "";
96141
const re = /https:\/\/manage\.(?<host>[a-z0-1.]*mist\.com)\/admin\/\?org_id=(?<org_id>[0-9a-f-]*)#!(?<obj>[a-z]+)\/?(?<detail>detail|template|site|rfTemplate|admin|edgedetail|clusterdetail|new)?\/?([0-9])*?\/?(?<uuid_1>[0-9a-f-]*)?\/?(?<uuid_2>[0-9a-f-]*)?/gi;
97142
let res = re.exec(this.tabUrl);
98143
if (res) {
99144
this.org_id = res.groups.org_id;
100-
if (res.groups.host && res.groups.org_id && res.groups.obj) {
145+
if (res.groups.host && res.groups.org_id && res.groups.obj) {
101146
switch (res.groups.obj.toLowerCase()) {
102147
// SITE
103148
case "ap":
104149
case "switch":
105150
case "gateway":
106-
this.api_url_obj = this.forgeSite(res.groups, "devices", "type=" + res.groups.obj);
107-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, "devices", "type=" + res.groups.obj);
151+
this.obj_name = res.groups.obj;
152+
this.forgeSite(res.groups, "devices", "type=" + res.groups.obj);
153+
this.forgeSiteStats(res.groups, "devices", "type=" + res.groups.obj);
154+
this.forgeDeviceEvents(res.groups, "devices", "type=" + res.groups.obj);
108155
break;
109156
case "assets":
110-
this.api_url_obj = this.forgeSite(res.groups, res.groups.obj, null);
111-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, res.groups.obj, null);
157+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
158+
this.forgeSite(res.groups, res.groups.obj, null);
159+
this.forgeSiteStats(res.groups, res.groups.obj, null);
112160
break;
113161
case "wlan":
114-
this.api_url_obj = this.forgeSite(res.groups, "wlans", null);
162+
this.obj_name = res.groups.obj;
163+
this.forgeSite(res.groups, "wlans", null);
115164
break;
116165
case "tags":
117-
this.api_url_obj = this.forgeSite(res.groups, "wxtags", null);
166+
this.obj_name = "wxtag";
167+
this.forgeSite(res.groups, "wxtags", null);
118168
break;
119169
case "psk":
120-
this.api_url_obj = this.forgeSite(res.groups, "psks", null);
170+
this.obj_name = res.groups.obj;
171+
this.forgeSite(res.groups, "psks", null);
121172
break;
122173
// case "siteedge":
123-
// this.api_url_obj = this.forgeSite(res.groups, "mxedges", null);
124-
// this.api_url_stats_obj = this.forgeSiteStats(res.groups, "mxedges", null);
174+
// this.forgeSite(res.groups, "mxedges", null);
175+
// this.forgeSiteStats(res.groups, "mxedges", null);
125176
// break;
126177
case "tunnels":
127-
this.api_url_obj = this.forgeSite(res.groups, "wxtunnels", null);
128-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, "wxtunnels", null);
178+
this.obj_name = "wxtunnel";
179+
this.forgeSite(res.groups, "wxtunnels", null);
180+
this.forgeSiteStats(res.groups, "wxtunnels", null);
129181
break;
130182
case "clients":
131183
case "sdkclients":
132-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, res.groups.obj, null);
184+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
185+
this.forgeSiteStats(res.groups, res.groups.obj, null);
133186
break;
134187
case "wxlan":
135-
this.api_url_obj = this.forgeSite(res.groups, "wxrules", null);
136-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, "wxrules", null);
137-
break;
138-
case "security":
139-
this.api_url_obj = this.forgeSite(res.groups, "wxrules", null);
140-
this.api_url_stats_obj = this.forgeSiteStats(res.groups, "wxrules", null);
188+
this.obj_name = "wxrule";
189+
this.forgeSite(res.groups, "wxrules", null);
190+
this.forgeSiteStats(res.groups, "wxrules", null);
141191
break;
192+
// case "security":
193+
// this.forgeSite(res.groups, "wxrules", null);
194+
// this.forgeSiteStats(res.groups, "wxrules", null);
195+
// break;
142196
case "switchconfig":
143-
this.api_url_obj = "https://api." + res.groups.host + "/api/v1/sites/" + res.groups.uuid_1 + "/setting"
197+
this.quick_links.push({
198+
url: "https://api." + res.groups.host + "/api/v1/sites/" + res.groups.uuid_1 + "/setting/derived",
199+
name: "switchconfig"
200+
})
144201
break;
145202
case "pcap":
146-
this.api_url_obj = this.forgeSite(res.groups, "pcaps", null);
203+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
204+
this.forgeSite(res.groups, "pcaps", null);
147205
break;
148206
// ORG
149207
case "orgtags":
150-
this.api_url_obj = this.forgeOrg(res.groups, "wxtags", null);
208+
this.obj_name = "wxtag";
209+
this.forgeOrg(res.groups, "wxtags", null);
151210
break;
152211
case "misttunnels":
153-
this.api_url_obj = this.forgeOrg(res.groups, "mxtunnels", null);
212+
this.obj_name = "mxtunnel";
213+
this.forgeOrg(res.groups, "mxtunnels", null);
154214
break;
155215
case "switchtemplate":
156-
this.api_url_obj = this.forgeOrg(res.groups, "networktemplates", null);
216+
this.obj_name = res.groups.obj;
217+
this.forgeOrg(res.groups, "networktemplates", null);
157218
break;
158219
case "deviceprofiles":
159-
this.api_url_obj = this.forgeOrg(res.groups, "deviceprofiles", null);
220+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
221+
this.forgeOrg(res.groups, "deviceprofiles", null);
160222
break;
161223
case "org":
162-
this.api_url_obj = "https://api." + res.groups.host + "/api/v1/orgs/" + res.groups.org_id + "/setting";
224+
this.quick_links.push({
225+
url : "https://api." + res.groups.host + "/api/v1/orgs/" + res.groups.org_id + "/setting",
226+
name: "org setting"
227+
},{
228+
url : "https://api." + res.groups.host + "/api/v1/orgs/" + res.groups.org_id + "/stats",
229+
name: "org stats"
230+
})
163231
break;
164232
case "configuration":
165-
this.api_url_obj = this.forgeOrg(res.groups, "sites", null);
233+
this.obj_name = "site"
234+
this.quick_links.push({
235+
url: "https://api." + res.groups.host + "/api/v1/sites/" + res.groups.uuid_1,
236+
name: "site info"
237+
},{
238+
url: "https://api." + res.groups.host + "/api/v1/sites/" + res.groups.uuid_1 + "/setting",
239+
name: "site setting"
240+
},{
241+
url: "https://api." + res.groups.host + "/api/v1/sites/" + res.groups.uuid_1 + "/stats",
242+
name: "site stats"
243+
})
166244
break;
167245
case "rftemplates":
168246
case "templates":
169-
this.api_url_obj = this.forgeOrg(res.groups, res.groups.obj, null);
247+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
248+
this.forgeOrg(res.groups, res.groups.obj, null);
170249
break;
171250
case "apinventory":
172-
this.api_url_obj = this.forgeOrg(res.groups, "inventory", null);
251+
this.obj_name = "inventory";
252+
this.forgeOrg(res.groups, "inventory", null);
173253
break;
174254
case "adminconfig":
175-
this.api_url_obj = this.forgeOrg(res.groups, "admins", null);
255+
this.obj_name = "admin";
256+
this.forgeOrg(res.groups, "admins", null);
176257
break;
177258
case "auditLogs":
178-
this.api_url_obj = this.forgeOrg(res.groups, "logs", null);
259+
this.obj_name = res.groups.obj.substr(0, res.groups.obj.length - 1);
260+
this.forgeOrg(res.groups, "logs", null);
179261
break;
180262
case "subscription":
181-
this.api_url_obj = this.forgeOrg(res.groups, "licenses", null);
263+
this.obj_name = res.groups.obj
264+
this.forgeOrg(res.groups, "licenses", null);
182265
break;
183266
case "edge":
184267
if (res.groups.detail == "edgedetail") {
185-
this.api_url_obj = this.forgeOrg(res.groups, "mxedges", null);
186-
this.api_url_stats_obj = this.forgeOrgStats(res.groups, "mxedges", null);
268+
this.obj_name = "mxedge";
269+
this.forgeOrg(res.groups, "mxedges", null);
270+
this.forgeOrgStats(res.groups, "mxedges", null);
187271
} else if (res.groups.detail == "clusterdetail") {
188-
this.api_url_obj = this.forgeOrg(res.groups, "mxclusters", null);
272+
this.obj_name = "mxcluster";
273+
this.forgeOrg(res.groups, "mxclusters", null);
274+
} else {
275+
this.quick_links.push({
276+
url: "https://api." + res.groups.host + "/api/v1/orgs/" + res.groups.org_id + "/mxedges",
277+
name: "mxedges"
278+
},{
279+
url: "https://api." + res.groups.host + "/api/v1/orgs/" + res.groups.org_id + "/mxclusters",
280+
name: "mxclusters"
281+
})
189282
}
190283
break;
191284
}

0 commit comments

Comments
 (0)