|  | @@ -1,8 +1,42 @@
 | 
	
		
			
				|  |  |  import { Request as ExpressRequest, Response as ExpressResponse } from "express";
 | 
	
		
			
				|  |  | -import { rpcClient } from "src/rpc";
 | 
	
		
			
				|  |  | +import got from "got";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const TOKEN_API = "https://discord.com/api/oauth2/token";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +interface CodeResponse {
 | 
	
		
			
				|  |  | +    code?: string;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +interface AccessTokenResponse {
 | 
	
		
			
				|  |  | +    // eslint-disable-next-line camelcase
 | 
	
		
			
				|  |  | +    access_token: string;
 | 
	
		
			
				|  |  | +    // eslint-disable-next-line camelcase
 | 
	
		
			
				|  |  | +    token_type: string;
 | 
	
		
			
				|  |  | +    // eslint-disable-next-line camelcase
 | 
	
		
			
				|  |  | +    expires_in: number;
 | 
	
		
			
				|  |  | +    // eslint-disable-next-line camelcase
 | 
	
		
			
				|  |  | +    refresh_token: string;
 | 
	
		
			
				|  |  | +    // eslint-disable-next-line camelcase
 | 
	
		
			
				|  |  | +    scope: string;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export const get = async (req: ExpressRequest, res: ExpressResponse): Promise<void> => {
 | 
	
		
			
				|  |  | -    const result = await rpcClient.getPing({ ping: "PING" });
 | 
	
		
			
				|  |  | -    console.log(`Res: ${result.text}, url: ${req.url}`);
 | 
	
		
			
				|  |  | +    const data = req.query as CodeResponse;
 | 
	
		
			
				|  |  | +    if (!data.code) {
 | 
	
		
			
				|  |  | +        res.redirect("/");
 | 
	
		
			
				|  |  | +        return;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    const result = await got<AccessTokenResponse>(TOKEN_API, {
 | 
	
		
			
				|  |  | +        method: "post",
 | 
	
		
			
				|  |  | +        form: {
 | 
	
		
			
				|  |  | +            client_id: process.env.BOT_CLIENT_ID,
 | 
	
		
			
				|  |  | +            client_secret: process.env.BOT_CLIENT_SECRET,
 | 
	
		
			
				|  |  | +            grant_type: "authorization_code",
 | 
	
		
			
				|  |  | +            code: data.code,
 | 
	
		
			
				|  |  | +            scope: "identify",
 | 
	
		
			
				|  |  | +            redirect_uri: process.env.WEB_AUTH_URI,
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    console.log(result.body);
 | 
	
		
			
				|  |  |      res.redirect("/");
 | 
	
		
			
				|  |  |  };
 |