package com.akoscz.youtube;

import android.os.AsyncTask;
import android.text.TextUtils;

import com.google.api.services.youtube.YouTube;
import com.google.api.services.youtube.model.PlaylistListResponse;

import java.io.IOException;

/**
 * This AsyncTask will get the titles of all the playlists that are passed in as a parameter.
 */
public class GetPlaylistTitlesAsyncTask  extends AsyncTask<String[], Void, PlaylistListResponse> {
    //see: https://developers.google.com/youtube/v3/docs/playlists/list
    private static final String YOUTUBE_PLAYLIST_PART = "snippet";
    private static final String YOUTUBE_PLAYLIST_FIELDS = "items(id,snippet(title))";

    private YouTube mYouTubeDataApi;

    public GetPlaylistTitlesAsyncTask(YouTube api) {
        mYouTubeDataApi = api;
    }

    @Override
    protected PlaylistListResponse doInBackground(String[]... params) {

        final String[] playlistIds = params[0];

        PlaylistListResponse playlistListResponse;
        try {
            playlistListResponse = mYouTubeDataApi.playlists()
                .list(YOUTUBE_PLAYLIST_PART)
                .setId(TextUtils.join(",", playlistIds))
                .setFields(YOUTUBE_PLAYLIST_FIELDS)
                .setKey(ApiKey.YOUTUBE_API_KEY)
                .execute();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
         
        return playlistListResponse;
    }
}