-
Notifications
You must be signed in to change notification settings - Fork 0
/
iframe.js
118 lines (82 loc) · 3.12 KB
/
iframe.js
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
window.addEventListener("message", didReceiveMessage, false)
var headers = null
window.onload = function() {
console.log("Frame: Is loaded")
var parameters = {
"command": "SET_HEADERS"
}
parent.postMessage(JSON.stringify(parameters), "*")
}
var createAccount = function (parameters) {
console.log("Frame: Create account")
var parameters = JSON.parse(event.data)
const endpoint = headers["api_url"] + "/api/" + headers["api_version"] + "/manager/account"
const request = new XMLHttpRequest()
request.open("POST", endpoint, false)
request.setRequestHeader("Accept", "*/*")
request.setRequestHeader("Content-Type", "application/json")
request.setRequestHeader("Authorization", headers["authorization"])
var data = {
"host": parameters["host"],
"username": parameters["username"],
"password": parameters["password"],
"passwordScore": parameters["passwordScore"]
}
var json = JSON.stringify(data)
request.send(json)
}
var generateAlias = function (parameters) {
console.log("Frame: Generate alias")
var parameters = JSON.parse(event.data)
const endpoint = headers["api_url"] + "/api/" + headers["api_version"] + "/email"
const request = new XMLHttpRequest()
request.open("POST", endpoint, false)
request.setRequestHeader("Accept", "*/*")
request.setRequestHeader("Content-Type", "application/json")
request.setRequestHeader("Authorization", headers["authorization"])
var data = {
"host": parameters["host"]
}
var json = JSON.stringify(data)
request.send(json)
var alias = JSON.parse(request.responseText)["data"]["email"]
var response = {
"command": "GENERATE_ALIAS",
"alias": alias
}
parent.postMessage(JSON.stringify(response), "*")
}
var retrieveAccount = function (parameters) {
console.log("Frame: Retrieve account")
var parameters = JSON.parse(event.data)
const endpoint = headers["api_url"] + "/api/" + headers["api_version"] + "/manager/account/data?max=1000&offset=0"
const request = new XMLHttpRequest()
request.open("GET", endpoint, false)
request.setRequestHeader("Accept", "*/*")
request.setRequestHeader("Content-Type", "application/json")
request.setRequestHeader("Authorization", headers["authorization"])
request.send(null)
var username = JSON.parse(request.responseText)["data"]["accounts"]["Amazon"][0]["username"]
var response = {
"command": "RETRIEVE_ACCOUNT",
"username": username
}
parent.postMessage(JSON.stringify(response), "*")
}
var setHeaders = function (parameters) {
console.log("Frame: Set headers")
headers = parameters
}
function didReceiveMessage(event) {
var parameters = JSON.parse(event.data)
var command = parameters["command"]
if (command === "SET_HEADERS") {
setHeaders(parameters)
} else if (command === "RETRIEVE_ACCOUNT") {
retrieveAccount(parameters)
} else if (command === "GENERATE_ALIAS") {
generateAlias(parameters)
} else if (command === "CREATE_ACCOUNT") {
createAccount(parameters)
}
}