lib/datacentred/model/user.rb in datacentred-0.1.1pre vs lib/datacentred/model/user.rb in datacentred-1.1.1
- old
+ new
@@ -1,32 +1,64 @@
module Datacentred
module Model
- class User < OpenStruct
- def initialize(params)
- params.delete("links")
- params["created_at"] = Time.parse params["created_at"]
- params["updated_at"] = Time.parse params["updated_at"]
- super(params)
- end
+ # A user on your DataCentred account.
+ #
+ # Users are team members with the ability to log into your DataCentred account.
+ #
+ # All users created in your DataCented account are backed by a corresponding user in OpenStack's identity service (Keystone).
+ class User < Base
+ class << self
+ # Create a new user.
+ #
+ # @param [Hash] params User attributes.
+ # @raise [Errors::UnprocessableEntity] Raised if validations fail for the supplied attributes.
+ # @raise [Errors::Unauthorized] Raised if credentials aren't valid.
+ # @return [User] New user.
+ def create(params)
+ new Request::Users.create params
+ end
- def self.all
- Request::Users.list.map { |user| new(user) }
- end
+ # List all available users.
+ #
+ # @raise [Errors::Unauthorized] Raised if credentials aren't valid.
+ # @return [[User]] A collection of all users on this account.
+ def all
+ Request::Users.list.map {|user| new user }
+ end
- def self.find(id)
- new Request::Users.show(id)
- end
+ # Find a user by unique ID.
+ #
+ # @param [String] id The unique identifier for this user.
+ # @raise [Errors::NotFound] Raised if the user couldn't be found.
+ # @raise [Errors::Unauthorized] Raised if credentials aren't valid.
+ # @return [User] The user, if it exists.
+ def find(id)
+ new Request::Users.show id
+ end
- def self.create(params)
- new Request::Users.create(params)
- end
+ # Update a user by unique ID.
+ #
+ # @param [String] id The unique identifier for this user.
+ # @param [Hash] params User attributes.
+ # @raise [Errors::UnprocessableEntity] Raised if validations fail for the supplied attributes.
+ # @raise [Errors::NotFound] Raised if the user couldn't be found.
+ # @raise [Errors::Unauthorized] Raised if credentials aren't valid.
+ # @return [User] The updated user.
+ def update(id, params)
+ new Request::Users.update id, params
+ end
- def self.update(id, params)
- new Request::Users.update(id, params)
- end
-
- def self.delete(id)
- Request::Users.destroy(id)
+ # Permanently remove the specified user.
+ #
+ # @param [String] id The unique identifier for this user.
+ # @raise [Errors::NotFound] Raised if the user couldn't be found.
+ # @raise [Errors::UnprocessableEntity] Raised if validations fail for the specified user.
+ # @raise [Errors::Unauthorized] Raised if credentials aren't valid.
+ # @return [Boolean] Confirms the user was destroyed.
+ def destroy(id)
+ Request::Users.destroy id
+ true
+ end
end
end
end
end