Sha256: 6e20759606868c472dd51ceac3fe265a16710cc98384a41a0af649e567bdf9d8

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module Meibo
  class UserProfile
    DataModel.define(
      self,
      attribute_name_to_header_field_map: {
        sourced_id: 'sourcedId',
        status: 'status',
        date_last_modified: 'dateLastModified',
        user_sourced_id: 'userSourcedId',
        profile_type: 'profileType',
        vendor_id: 'vendorId',
        application_id: 'applicationId',
        description: 'description',
        credential_type: 'credentialType',
        username: 'username',
        password: 'password'
      },
      converters: {
        datetime: [:date_last_modified],
        required: [:sourced_id, :user_sourced_id, :profile_type, :vendor_id, :credential_type, :username],
        status: [:status]
      }
    )

    def initialize(sourced_id:, status: nil, date_last_modified: nil, user_sourced_id:, profile_type:, vendor_id:, application_id: nil, description: nil, credential_type:, username:, password: nil, **extension_fields)
      @sourced_id = sourced_id
      @status = status
      @date_last_modified = date_last_modified
      @user_sourced_id = user_sourced_id
      @profile_type = profile_type
      @vendor_id = vendor_id
      @application_id = application_id
      @description = description
      @credential_type = credential_type
      @username = username
      @password = password
      @extension_fields = extension_fields
    end

    def collection
      Meibo.current_roster.user_profiles
    end

    def user
      Meibo.current_roster.users.find(user_sourced_id)
    end

    def role
      Meibo.current_roster.roles.where(user_profile_sourced_id: sourced_id).first
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
meibo-0.16.0 lib/meibo/user_profile.rb
meibo-0.15.0 lib/meibo/user_profile.rb