Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 1x 1x 1x 1x 1x 1x 1x 1x | import CoreFormsEnum, { getFormName } from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
import Field from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Field';
import FieldType from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FieldType';
import Form from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Form';
import FormStack from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FormStack';
import AOAuth2Application from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/AOAuth2Application';
import { CLIENT_ID, CLIENT_SECRET } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/IOAuth2Application';
import RequestDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/RequestDto';
import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
import AProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/AProcessDto';
import { CommonHeaders, JSON_TYPE } from '@orchesty/nodejs-sdk/dist/lib/Utils/Headers';
export const NAME = 'one-drive';
export const TOKEN = 'token';
export default class OneDriveApplication extends AOAuth2Application {
public getName(): string {
return NAME;
}
public getPublicName(): string {
return 'OneDrive';
}
public getDescription(): string {
return 'Microsoft cloud service that connects you to all your files. It lets you store and protect your files, share them with others, and get to them from anywhere on all your devices';
}
public getLogo(): string {
return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMwMzY0Qjg7fQoJLnN0MXtmaWxsOiMwMDc4RDQ7fQoJLnN0MntmaWxsOiMxNDkwREY7fQoJLnN0M3tmaWxsOiMyOEE4RUE7fQo8L3N0eWxlPgo8ZyBpZD0iU1RZTEVfQ09MT1IiPgoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM4LjIsMzUuOEwzOC4yLDM1LjhsMjAuOSwxMi41bDEyLjUtNS4ybDAsMGMyLjUtMS4xLDUuMy0xLjcsOC0xLjdjMC41LDAsMC45LDAsMS40LDAuMQoJCWMtNC4zLTE2LjYtMjEuMi0yNi43LTM3LjktMjIuNGMtNy41LDEuOS0xNCw2LjYtMTguMywxM2MwLjEsMCwwLjIsMCwwLjMsMEMyOS43LDMyLjEsMzQuMywzMy40LDM4LjIsMzUuOHoiLz4KCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0zOC4yLDM1LjhMMzguMiwzNS44Yy0zLjktMi40LTguNS0zLjctMTMuMS0zLjdjLTAuMSwwLTAuMiwwLTAuMywwQzExLjEsMzIuMywwLjEsNDMuNiwwLjIsNTcuMwoJCWMwLjEsNSwxLjYsOS44LDQuNSwxMy45bDE4LjQtNy44bDguMi0zLjRsMTguMi03LjdsOS41LTRMMzguMiwzNS44eiIvPgoJPHBhdGggY2xhc3M9InN0MiIgZD0iTTgwLjksNDEuNWMtMC41LDAtMC45LTAuMS0xLjQtMC4xYy0yLjgsMC01LjUsMC42LTgsMS43bDAsMGwtMTIuNSw1LjJsMy42LDIuMmwxMS44LDcuMWw1LjIsMy4xbDE3LjcsMTAuNgoJCWM1LjMtOS44LDEuNi0yMi4xLTguMi0yNy40Qzg2LjYsNDIuNSw4My44LDQxLjcsODAuOSw0MS41eiIvPgoJPHBhdGggY2xhc3M9InN0MyIgZD0iTTc5LjcsNjAuN2wtNS4yLTMuMWwtMTEuOC03LjFsLTMuNi0yLjJsLTkuNSw0TDMxLjMsNjBsLTguMiwzLjRMNC43LDcxLjJDOS4zLDc3LjksMTcsODEuOSwyNS4xLDgxLjloNTQuNAoJCWM3LjQsMCwxNC4zLTQuMSwxNy44LTEwLjZMNzkuNyw2MC43eiIvPgo8L2c+Cjwvc3ZnPgo=';
}
public getFormStack(): FormStack {
const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, getFormName(CoreFormsEnum.AUTHORIZATION_FORM))
.addField(new Field(FieldType.TEXT, CLIENT_ID, 'Client id', null, true))
.addField(new Field(FieldType.TEXT, CLIENT_SECRET, 'Client secret', null, true));
return new FormStack().addForm(form);
}
public isAuthorized(applicationInstall: ApplicationInstall): boolean {
const authorizationForm = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
return super.isAuthorized(applicationInstall)
&& authorizationForm?.[CLIENT_ID]
&& authorizationForm?.[CLIENT_SECRET];
}
public getRequestDto(
dto: AProcessDto,
applicationInstall: ApplicationInstall,
method: HttpMethods,
_url?: string,
data?: unknown,
): RequestDto {
const settings = applicationInstall.getSettings();
const token = settings[CoreFormsEnum.AUTHORIZATION_FORM][TOKEN];
const url = `https://graph.microsoft.com/v1.0/${_url}`;
const request = new RequestDto(url, method, dto);
request.setHeaders({
[CommonHeaders.CONTENT_TYPE]: JSON_TYPE,
[CommonHeaders.ACCEPT]: JSON_TYPE,
[CommonHeaders.AUTHORIZATION]: `Bearer ${token}`,
});
Eif (data) {
request.setJsonBody(data);
}
return request;
}
public getAuthUrl(): string {
return 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getScopes(applicationInstall: ApplicationInstall): string[] {
return ['Files.ReadWrite'];
}
public getTokenUrl(): string {
return 'https://login.microsoftonline.com/common/oauth2/v2.0/token';
}
}
|