import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class BuscarLocalidadeService {
  private url_IBGE = 'https://servicodados.ibge.gov.br/api/v1/localidades/';

  constructor(private http: HttpClient) { }

  // listagem em ordem alfabética
  getEstados(): Observable<any[]> {
    return this.http.get<any[]>(`${this.url_IBGE}estados`).pipe(
      map(estados => estados.sort((a, b) => a.nome.localeCompare(b.nome)))
    );
  }

  getCidades(estadoId: number): Observable<any[]> {
    return this.http.get<any[]>(`${this.url_IBGE}estados/${estadoId}/municipios`);
  }
}
