mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-19 17:22:48 -05:00
Initial Code Layering (#3788)
* working on formatting * fixed basic lint errors; starting moving things to their appropriate location * formatting * update tslint to match the version of vscode we have * remove unused code * work in progress fixing layering * formatting * moved connection management service to platform * formatting * add missing file * moving more servies * formatting * moving more services * formatting * wip * moving more services * formatting * revert back tslint rules * move css file * add missing svgs
This commit is contained in:
34
src/sql/platform/oAuth/common/sqlOAuthService.ts
Normal file
34
src/sql/platform/oAuth/common/sqlOAuthService.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
|
||||
export const ISqlOAuthService = createDecorator<ISqlOAuthService>('sqlOAuthService');
|
||||
|
||||
/**
|
||||
* Defines simple electron based utilities for registering and sending IPC to the main thread to
|
||||
* handle OAuth requests. This is to avoid breaking layering issues caused when certain
|
||||
* electron-based services are referenced in unit testable code.
|
||||
*/
|
||||
export interface ISqlOAuthService {
|
||||
_serviceBrand: any;
|
||||
|
||||
/**
|
||||
* Sends request to main thread to handle OAuth request
|
||||
* @param {string} eventId Unique ID of the request to return upon completion
|
||||
* @param {string} url URL to load to do OAuth
|
||||
* @param {boolean} silent Whether or not to show the OAuth window
|
||||
* @return {Thenable<string>} Promise to return an authorization code
|
||||
*/
|
||||
performOAuthAuthorization(eventId: string, url: string, silent: boolean): void;
|
||||
|
||||
/**
|
||||
* Registers a handler for the oauth-reply event on the IPC channel
|
||||
* @param {(event, args) => void} handler Handler to call when the event is triggered
|
||||
*/
|
||||
registerOAuthCallback(handler: (event, args) => void): void;
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as electron from 'electron';
|
||||
import { ISqlOAuthService } from 'sql/platform/oAuth/common/sqlOAuthService';
|
||||
|
||||
/**
|
||||
* Implements simple electron based utilities for registering and sending IPC to the main thread to
|
||||
* handle OAuth requests. This is to avoid breaking layering issues caused when certain
|
||||
* electron-based services are referenced in unit testable code.
|
||||
*/
|
||||
export class SqlOAuthService implements ISqlOAuthService {
|
||||
public _serviceBrand: any;
|
||||
|
||||
/**
|
||||
* Sends request to main thread to handle OAuth request
|
||||
* @param {string} eventId Unique ID of the request to return upon completion
|
||||
* @param {string} url URL to load to do OAuth
|
||||
* @param {boolean} silent Whether or not to show the OAuth window
|
||||
* @return {Thenable<string>} Promise to return an authorization code
|
||||
*/
|
||||
performOAuthAuthorization(eventId: string, url: string, silent: boolean): void {
|
||||
// Setup the args and send the IPC call
|
||||
electron.ipcRenderer.send(
|
||||
'oauth',
|
||||
{
|
||||
url: url,
|
||||
silent: silent,
|
||||
eventId: eventId
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a handler for the oauth-reply event on the IPC channel
|
||||
* @param {(event, args) => void} handler Handler to call when the event is triggered
|
||||
*/
|
||||
registerOAuthCallback(handler: (event, args) => void): void {
|
||||
electron.ipcRenderer.on('oauth-reply', handler);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user