21 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as config from "./config";
 | |
| import { log, LogLevel } from "./logging"
 | |
| import fetch, { Response as FetchResponse } from "node-fetch";
 | |
| 
 | |
| export async function apiRequest(endpoint: string, parameters: URLSearchParams): Promise <any> {
 | |
| 	log(LogLevel.DEBUG,`Call: youtube.apiRequest(${endpoint},${parameters})`);
 | |
| 	parameters.set('key',config.youtubeSecret);
 | |
| 	var requestUrl = "https://www.googleapis.com/youtube/v3" + endpoint + "?" + parameters.toString();
 | |
| 	return fetch(requestUrl)
 | |
| 		.then(async (res: FetchResponse) => {
 | |
| 			if (res.status == 200) {
 | |
| 				return res.json();
 | |
| 			} else {
 | |
| 				log(LogLevel.WARNING,"Failed Youtube API request:");
 | |
| 				log(LogLevel.WARNING,"Request URL: " + requestUrl);
 | |
| 				log(LogLevel.WARNING,"Response:");
 | |
| 				log(LogLevel.WARNING,JSON.stringify(await res.json(),null,2));
 | |
| 				return false;
 | |
| 			}
 | |
| 		})
 | |
| }
 |