forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			901 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			901 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import Constants from "../Models/Constants";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class Maproulette {
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The API endpoint to use
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  endpoint: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * The API key to use for all requests
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  private apiKey: string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Creates a new Maproulette instance
							 | 
						||
| 
								 | 
							
								   * @param endpoint The API endpoint to use
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  constructor(endpoint: string = "https://maproulette.org/api/v2") {
							 | 
						||
| 
								 | 
							
								    this.endpoint = endpoint;
							 | 
						||
| 
								 | 
							
								    this.apiKey = Constants.MaprouletteApiKey;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  /**
							 | 
						||
| 
								 | 
							
								   * Close a task
							 | 
						||
| 
								 | 
							
								   * @param taskId The task to close
							 | 
						||
| 
								 | 
							
								   */
							 | 
						||
| 
								 | 
							
								  async closeTask(taskId: number): Promise<void> {
							 | 
						||
| 
								 | 
							
								    const response = await fetch(`${this.endpoint}/task/${taskId}/1`, {
							 | 
						||
| 
								 | 
							
								      method: "PUT",
							 | 
						||
| 
								 | 
							
								      headers: {
							 | 
						||
| 
								 | 
							
								        "Content-Type": "application/json",
							 | 
						||
| 
								 | 
							
								        "apiKey": this.apiKey,
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    if (response.status !== 304) {
							 | 
						||
| 
								 | 
							
								      console.log(`Failed to close task: ${response.status}`);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |