# frozen_string_literal: true require '/data_importer/lib/github_api/github_api' module GithubApi class User UserProfileQuery = GithubApi::Client.parse <<-'GRAPHQL' query($username: String!) { user(login: $username) { id login name avatarUrl bio bioHTML location } } GRAPHQL def self.find(username) # Retryable.retryable(tries: 3, on: QueryExecutionError, sleep: lambda { |n| 4**n } ) do response = GithubApi::Client.query(UserProfileQuery, variables: { username: username }) if response.errors.any? raise QueryExecutionError, response.errors[:data].join(', ') else response.data.user end # end end end end class QueryExecutionError < StandardError; end