Started re-adding oauth2 configurations

This commit is contained in:
frikky
2021-03-13 18:39:33 +01:00
parent 49d9c63d88
commit 4305b8275d
5 changed files with 633 additions and 621 deletions
+67 -47
View File
@@ -2307,10 +2307,12 @@ const AngularWorkflow = (props) => {
return
}
/*
if (data.is_valid === false) {
alert.error(data.name+" is only available on https://shuffler.io so far")
return
}
*/
const triggerLabel = getNextActionName(data.name)
@@ -4929,7 +4931,7 @@ const AngularWorkflow = (props) => {
}
const setFolders = () => {
fetch(globalUrl+"/functions/outlook/getFolders?trigger_id="+selectedTrigger.id, {
fetch(globalUrl+"/api/v1/triggers/outlook/getFolders?trigger_id="+selectedTrigger.id, {
method: "GET",
headers: {"content-type": "application/json"},
credentials: "include",
@@ -4942,7 +4944,10 @@ const AngularWorkflow = (props) => {
return response.json()
})
.then((responseJson) => {
setTriggerFolders(responseJson)
if (responseJson !== null && responseJson.success !== false) {
setTriggerFolders(responseJson)
}
if (workflow.triggers[selectedTriggerIndex].parameters.length === 0 && responseJson.length > 0) {
workflow.triggers[selectedTriggerIndex].parameters = [{"value": responseJson[0].displayName, "name": "outlookfolder", "id": responseJson[0].id}]
selectedTrigger.parameters = [{"value": responseJson[0].displayName, "name": "outlookfolder", "id": responseJson[0].id}]
@@ -4956,7 +4961,7 @@ const AngularWorkflow = (props) => {
}
const getTriggerAuth = () => {
fetch(globalUrl+"/api/v1/triggers/"+selectedTrigger.id, {
fetch(globalUrl+"/api/v1/triggers/outlook/"+selectedTrigger.id, {
method: "GET",
headers: {"content-type": "application/json"},
credentials: "include",
@@ -4987,15 +4992,22 @@ const AngularWorkflow = (props) => {
const outlookButton =
<Button variant="contained" style={{flex: "1",}} onClick={() => {
// When window closes, it should get all the folders for the user from backend
const redirectUri = "http%3A%2F%2Fshuffler.io"
const url = "https://login.microsoftonline.com/common/oauth2/authorize?client_id=70e37005-c954-4290-b573-d4b94e484336&redirect_uri="+redirectUri+"%2Ffunctions%2Foutlook%2Fregister&resource=https%3A%2F%2Fgraph.microsoft.com&response_type=code&scope=Mail.Read+User.Read+https%3A%2F%2Foutlook.office.com%2Fmail.read&state=workflow_id%3D"+props.match.params.key+"%26trigger_id%3D"+selectedTrigger.id+"%26username%3Drheyix.yt@gmail.com%26type%3Doutlook"
//const redirectUri = "http%3A%2F%2Fshuffler.io"
//const client_id = "70e37005-c954-4290-b573-d4b94e484336"
const redirectUri = isCloud ? "https%3A%2F%2Fshuffler.io%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister" : "http%3A%2F%2Flocalhost:5001%2Fapi%2Fv1%2Ftriggers%2Foutlook%2Fregister"
console.log(redirectUri)
const client_id = "fd55c175-aa30-4fa6-b303-09a29fb3f750"
const username = isCloud ? userdata.username : userdata.id
console.log("USER: ", username, userdata)
const url = "https://login.microsoftonline.com/common/oauth2/authorize?client_id="+client_id+"&redirect_uri="+redirectUri+"&resource=https%3A%2F%2Fgraph.microsoft.com&response_type=code&scope=Mail.Read+User.Read+https%3A%2F%2Foutlook.office.com%2Fmail.read&state=workflow_id%3D"+props.match.params.key+"%26trigger_id%3D"+selectedTrigger.id+"%26username%3D"+username+"%26type%3Doutlook"
console.log("URL: ", url)
var newwin = window.open(url, "", "width=200,height=100")
var data = {}
// Check whether we got a callback somewhere
var id = setInterval(function () {
fetch(globalUrl+"/api/v1/triggers/"+selectedTrigger.id, {
fetch(globalUrl+"/api/v1/triggers/outlook/"+selectedTrigger.id, {
method: "GET",
headers: {"content-type": "application/json"},
credentials: "include",
@@ -5040,46 +5052,50 @@ const AngularWorkflow = (props) => {
</div>
{outlookButton}
<div style={{marginTop: "20px", marginBottom: "7px", display: "flex"}}>
<div style={{width: "17px", height: "17px", borderRadius: 17 / 2, backgroundColor: "#f85a3e", marginRight: "10px"}}/>
<div style={{flex: "10"}}>
<b>Folders: </b>(hold CTRL to select multiple)
</div>
</div>
<Select
multiple
native
rows="10"
value={selectedTrigger.parameters[0].value.split(splitter)}
style={{backgroundColor: inputColor, color: "white"}}
SelectDisplayProps={{
style: {
marginLeft: 10,
}
}}
onChange={(e) => {
//setTriggerFolderWrapper(e)
setTriggerFolderWrapperMulti(e)
}}
fullWidth
input={<Input id="select-multiple-native" />}
key={selectedTrigger}
>
{triggerFolders.map(folder => {
var folderItem = <option key={folder.displayName} value={folder.displayName} style={{marginLeft: "10px", fontSize: "1.2em"}}>
{folder.displayName}
</option>
if (folder.childFolderCount > 0) {
// Here to handle subfolders sometime later
folderItem =
<option key={folder.displayName} value={folder.displayName} style={{marginLeft: "10px", fontSize: "1.2em"}}>
{folder.displayName}
</option>
}
{triggerFolders === undefined || triggerFolders === null ? null :
<span>
<div style={{marginTop: "20px", marginBottom: "7px", display: "flex"}}>
<div style={{width: "17px", height: "17px", borderRadius: 17 / 2, backgroundColor: "#f85a3e", marginRight: "10px"}}/>
<div style={{flex: "10"}}>
<b>Folders: </b>(hold CTRL to select multiple)
</div>
</div>
<Select
multiple
native
rows="10"
value={selectedTrigger.parameters[0].value.split(splitter)}
style={{backgroundColor: inputColor, color: "white"}}
SelectDisplayProps={{
style: {
marginLeft: 10,
}
}}
onChange={(e) => {
//setTriggerFolderWrapper(e)
setTriggerFolderWrapperMulti(e)
}}
fullWidth
input={<Input id="select-multiple-native" />}
key={selectedTrigger}
>
{triggerFolders.map(folder => {
var folderItem = <option key={folder.displayName} value={folder.displayName} style={{marginLeft: "10px", fontSize: "1.2em"}}>
{folder.displayName}
</option>
if (folder.childFolderCount > 0) {
// Here to handle subfolders sometime later
folderItem =
<option key={folder.displayName} value={folder.displayName} style={{marginLeft: "10px", fontSize: "1.2em"}}>
{folder.displayName}
</option>
}
return folderItem
})}
</Select>
return folderItem
})}
</Select>
</span>
}
</div>
} else if (triggerAuthentication.type === "gmail") {
triggerInfo = "SPECIAL GMAIL"
@@ -5578,10 +5594,10 @@ const AngularWorkflow = (props) => {
if (trigger.id === undefined) {
return
}
alert.info("Stopping trigger")
alert.info("Deleting mail trigger")
fetch(globalUrl+"/api/v1/workflows/"+props.match.params.key+"/outlook/"+trigger.id, {
method: 'DELETE',
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
@@ -5616,6 +5632,10 @@ const AngularWorkflow = (props) => {
const startMailSub = (trigger, triggerindex) => {
var folders = []
if (triggerFolders === null || triggerFolders === undefined) {
return null
}
const splitItem = workflow.triggers[selectedTriggerIndex].parameters[0].value.split(splitter)
for (var key in splitItem) {
const item = splitItem[key]