Sha256: 6ba5b5dd0e04dad473e9d27b76e1fa20aa51994b2a286fa3c7c7b6b9e08b360e

Contents?: true

Size: 650 Bytes

Versions: 5

Compression:

Stored size: 650 Bytes

Contents

require "date"

module Opsgenie
  class User
    class << self
      def all
        body = Opsgenie::Client.get("users?limit=500")
        body["data"].map { |s| new(s) }
      end

      def find_by_username(username)
        find_by(:username, username)
      end

      def find(id)
        find_by(:id, id)
      end

      private

      def find_by(key, value)
        @users ||= all
        @users.find { |user| user.send(key) == value }
      end
    end

    attr_reader :id, :username, :full_name

    def initialize(attrs)
      @id = attrs["id"]
      @username = attrs["username"]
      @full_name = attrs["fullName"]
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
opsgenie-schedule-0.1.6 lib/opsgenie/user.rb
opsgenie-schedule-0.1.4 lib/opsgenie/user.rb
opsgenie-schedule-0.1.3 lib/opsgenie/user.rb
opsgenie-schedule-0.1.2 lib/opsgenie/user.rb
opsgenie-schedule-0.1.1 lib/opsgenie/user.rb