Sha256: fbcb3df6818f014bb6162ef2d48aa216d4a22556c500ac993ac2566f7ffbe311

Contents?: true

Size: 740 Bytes

Versions: 3

Compression:

Stored size: 740 Bytes

Contents

# frozen_string_literal: true

module Codeowners
  module Import
    class Organization
      def initialize(client, storage)
        @client = client
        @storage = storage
      end

      def call(org, debug)
        org = client.org(org, debug)
        users = client.org_members(org, debug)
        users = client.users(users, debug)
        teams = client.teams(org, debug)
        memberships = client.team_members(org, teams, debug)

        storage.transaction do |db|
          db[:orgs].upsert(org)
          db[:users].upsert(users)
          db[:teams].upsert(teams)
          db[:memberships].upsert(memberships)
        end
      end

      private

      attr_reader :client
      attr_reader :storage
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
codeowners-0.0.5 lib/codeowners/import/organization.rb
codeowners-0.0.4 lib/codeowners/import/organization.rb
codeowners-0.0.3 lib/codeowners/import/organization.rb