module Youtube
  class ChannelInfo
    def self.fetch(access_token:)
      service = Google::Apis::YoutubeV3::YouTubeService.new
      service.authorization = access_token
      resp = service.list_channels("snippet", mine: true, max_results: 1)
      item = resp.items&.first
      return { channel_id: nil, channel_title: nil } unless item

      {
        channel_id: item.id,
        channel_title: item.snippet&.title
      }
    rescue Google::Apis::Error
      { channel_id: nil, channel_title: nil }
    end
  end
end
