All files / Rindu/utils getSetList.ts

12.5% Statements 1/8
0% Branches 0/4
0% Functions 0/1
14.28% Lines 1/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72                                                                                                        2x                                      
export interface SetList {
  artist: {
    mbid: string;
    tmid: number;
    name: string;
    sortName: string;
    disambiguation: string;
    url: string;
  };
  venue: {
    city: {
      id: string;
      name: string;
      stateCode: string;
      state: string;
      coords: {
        lat: number;
        lng: number;
      };
      country: {
        code: string;
        name: string;
      };
    };
    url: string;
    id: string;
    name: string;
  };
  tour: {
    name: string;
  };
  sets: {
    set: {
      name: string;
      encore: number;
      song: {
        name: string;
        with: unknown;
        cover: unknown;
        info: string;
        tape: boolean;
      }[];
    }[];
  };
  info: string;
  url: string;
  id: string;
  versionId: string;
  eventDate: string;
  lastUpdated: string;
}
 
export async function getSetList(
  id?: string,
  apiKey?: string
): Promise<SetList | null> {
  Iif (!id || !apiKey) return null;
  const res = await fetch(`https://api.setlist.fm/rest/1.0/setlist/${id}`, {
    method: "GET",
    headers: {
      accept: "application/json",
      "x-api-key": apiKey,
    },
  });
 
  Iif (res.ok) {
    const data = (await res.json()) as SetList;
    return data;
  }
  return null;
}