         }
     }
     
+    //MARK: - Do Not Disturb
+    public func dndInfo(user: String?, success: ((status: DoNotDisturbStatus?)->Void)?, failure: FailureClosure?) {
+        let parameters: [String: AnyObject?] = ["user": user]
+        client.api.request(.DNDInfo, token: client.token, parameters: filterNilParameters(parameters), successClosure: {
+            (response) -> Void in
+                success?(status: DoNotDisturbStatus(status: response))
+            }) {(error) -> Void in
+                failure?(error: error)
+        }
+    }
+    
+    public func dndTeamInfo(users: [String]?, success: ((statuses: [String: DoNotDisturbStatus]?)->Void)?, failure: FailureClosure?) {
+        let parameters: [String: AnyObject?] = ["users": users]
+        client.api.request(.DNDTeamInfo, token: client.token, parameters: filterNilParameters(parameters), successClosure: {
+            (response) -> Void in
+                success?(statuses: self.enumerateDNDStauses(response["users"] as? [String: AnyObject]))
+            }) {(error) -> Void in
+                failure?(error: error)
+        }
+    }
+    
     //MARK: - Emoji
     public func emojiList(success: ((emojiList: [String: AnyObject]?)->Void)?, failure: FailureClosure?) {
         client.api.request(.EmojiList, token: client.token, parameters: nil, successClosure: {

    case ChatDelete = "chat.delete"
    case ChatPostMessage = "chat.postMessage"
    case ChatUpdate = "chat.update"
    case EmojiList = "emoji.list"
    case FilesDelete = "files.delete"
    case FilesUpload = "files.upload"

        return nil
    }
    
    //MARK: - Enumerate Do Not Distrub Status
    private func enumerateDNDStauses(statuses: [String: AnyObject]?) -> [String: DoNotDisturbStatus] {
        var retVal = [String: DoNotDisturbStatus]()
        if let keys = statuses?.keys {
            for key in keys {
                retVal[key] = DoNotDisturbStatus(status: statuses?[key] as? [String: AnyObject])
            }
        }
        return retVal
    }
    
}
