Sha256: 7b73741350a1fdcb38bbd3730731a65d9c7558dbaac4575fd7657ffacf484d95

Contents?: true

Size: 1.96 KB

Versions: 235

Compression:

Stored size: 1.96 KB

Contents

require_relative 'tunes_base'
require_relative 'application'

module Spaceship
  module Tunes
    class Member < TunesBase
      attr_accessor :email_address
      attr_accessor :firstname
      attr_accessor :lastname
      attr_accessor :username
      attr_accessor :not_accepted_invitation
      attr_accessor :user_id

      attr_mapping(
        'emailAddress.value' => :email_address,
        'firstName.value' => :firstname,
        'lastName.value' => :lastname,
        'userName' => :username,
        'dsId' => :user_id
      )

      ROLES = {
        admin: 'admin',
        app_manager: 'appmanager',
        sales: 'sales',
        developer: 'developer',
        marketing: 'marketing',
        reports: 'reports'
      }

      def roles
        parsed_roles = []
        raw_data["roles"].each do |role|
          parsed_roles << role["value"]["name"]
        end
        return parsed_roles
      end

      def admin?
        roles.include?(ROLES[:admin])
      end

      def app_manager?
        roles.include?(ROLES[:app_manager])
      end

      def preferred_currency
        currency_base = raw_data["preferredCurrency"]["value"]
        return {
          name:    currency_base["name"],
          code:    currency_base["currencyCode"],
          country: currency_base["countryName"],
          country_code: currency_base["countryCode"]
        }
      end

      def selected_apps
        parsed_apps = []
        raw_data["userSoftwares"]["value"]["grantedSoftwareAdamIds"].each do |app_id|
          parsed_apps << Application.find(app_id)
        end
        return parsed_apps
      end

      def not_accepted_invitation
        return true if raw_data["activationExpiry"]
        return false
      end

      def has_all_apps
        selected_apps.length == 0
      end

      def delete!
        client.delete_member!(self.user_id, self.email_address)
      end

      def resend_invitation
        client.reinvite_member(self.email_address)
      end
    end
  end
end

Version data entries

235 entries across 235 versions & 1 rubygems

Version Path
fastlane-2.115.0.beta.20190122200028 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.115.0.beta.20190120200101 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.115.0.beta.20190119200019 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.115.0.beta.20190118200015 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.115.0.beta.20190117200016 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190116200018 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190115200110 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190114200053 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190113200019 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190112200032 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190111200053 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190110200051 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190109200053 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.114.0.beta.20190108200048 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.113.0 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.113.0.beta.20190107200010 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.113.0.beta.20190106200016 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.113.0.beta.20190105200036 spaceship/lib/spaceship/tunes/member.rb
fastlane-2.113.0.beta.20190104200013 spaceship/lib/spaceship/tunes/member.rb