class Foxit::ETL

Attributes

client[R]
kitsu[R]

Public Class Methods

new(db_name: 'kitsu', host: ['127.0.0.1:27017']) click to toggle source
# File lib/foxit/etl.rb, line 13
def initialize db_name: 'kitsu', host: ['127.0.0.1:27017']
  @kitsu = API.new()
  @client = Mongo::Client.new(host, {database: db_name})
end

Public Instance Methods

get_anime(media_ids) click to toggle source
# File lib/foxit/etl.rb, line 36
def get_anime media_ids
  docs = @kitsu.get_anime_documents(media_ids)
  insert_many_docs('anime', docs)
end
get_libraries(user_ids) click to toggle source
# File lib/foxit/etl.rb, line 30
def get_libraries user_ids
  docs = @kitsu.batch_get_libraries_docs(user_ids)
  insert_many_docs('library', docs)
end
insert_many_docs(collection_name, docs) click to toggle source
# File lib/foxit/etl.rb, line 18
def insert_many_docs collection_name, docs
  begin
    puts "inserting..."
    result = @client[collection_name].insert_many(docs)
    puts "records inserted: #{result.inserted_count}"
  rescue StandardError => e
    puts "error: #{e}"
  end
  puts "complete.\n"
end