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