Spaces:
Running
on
Zero
Running
on
Zero
class PlantUML { | |
generateFlowDiagram() { | |
var flowDiagram = '@startuml\n'; | |
flowDiagram += 'participant Line as "Line"\n'; | |
flowDiagram += 'participant Script as "Google Apps Script"\n'; | |
flowDiagram += 'participant Drive as "Google Drive"\n'; | |
flowDiagram += 'participant S3 as "Amazon S3"\n'; | |
flowDiagram += 'Line->>Script: doPost\n'; | |
flowDiagram += 'Script->>Drive: save image\n'; | |
flowDiagram += 'Script->>S3: upload image\n'; | |
flowDiagram += '@enduml'; | |
var plantUMLService = getPlantUMLService(); | |
var diagramUrl = plantUMLService.getDiagramUrl(flowDiagram); | |
var diagramImage = UrlFetchApp.fetch(diagramUrl).getBlob(); | |
var driveFile = DriveApp.createFile(diagramImage); | |
} | |
getPlantUMLService() { | |
var service = OAuth2.createService('plantuml') | |
.setAuthorizationBaseUrl('https://plantuml.com/') | |
.setTokenUrl('https://plantuml.com/') | |
.setClientId('your_client_id') | |
.setClientSecret('your_client_secret') | |
.setCallbackFunction('authCallback') | |
.setPropertyStore(PropertiesService.getUserProperties()); | |
return service; | |
} | |
authCallback(request) { | |
var service = getService(); | |
var authorized = service.handleCallback(request); | |
if (authorized) { | |
return HtmlService.createHtmlOutput('Authorized'); | |
} else { | |
return HtmlService.createHtmlOutput('Access denied'); | |
} | |
} | |
} |