diff --git a/feedback-stephanie.md b/feedback-stephanie.md
new file mode 100644
index 0000000..d35638c
--- /dev/null
+++ b/feedback-stephanie.md
@@ -0,0 +1,150 @@
+# Feedback Rubric
+
+- Student Being Reviewed: Stephanie
+- Reviewer: Hala Haddad
+- Classroom: Space
+
+## Manual App Testing
+
+
+
+ | Item to review |
+ Feedback (yes/no) |
+
+
+
+ |
+ 1. Practices best practices working with APIs. (The .env is not checked into git, and no API token was directly used in the Ruby code without ENV.)
+ |
+
+ yes
+ |
+
+
+
+ |
+ 2. Practices error handling with APIs. (For all pieces of code that make an API call, it handles API requests that come back with errors/error status codes appropriately.)
+ |
+
+ yes
+ |
+
+
+
+ |
+ 3. Implements inheritance and inheritance idioms. There is a Recipient class. User and Channel inherit from Recipient. In Recipient, there are appropriate methods defined that are used in both User and Channel. Some may be implemented. Some may be template methods.
+ |
+
+ yes
+ |
+
+
+
+
+ 4. Practices clean code. yes
+
+
+ - lib/slack.rb only interacts with Workspace (to show a separation of responsibilities). yes
+
+
- Complex logic is broken into smaller helper methods. (There aren’t more than one or two methods that are 30 lines or more)
+
+
+ |
+
+ yes
+ |
+
+
+
+ |
+ 5. Practices instance methods vs. class methods appropriately. (The methods to list all Channels or Users is a class method within those respective classes.)
+ |
+
+ yes
+ |
+
+
+
+
+ |
+ 6. Practices best practices for testing. (The project has and uses VCR mocking when running tests, and can run offline.)
+ |
+
+ yes
+ |
+
+
+
+
+ |
+ 7. Practices writing tests. (The User, Channel, and Workspace classes have unit tests.)
+ |
+
+ yes, but incomplete
+ |
+
+
+
+
+ |
+ 8. There are also tests for sending messages (the location of these tests may differ, but is likely in Recipient)
+ |
+
+ no
+ |
+
+
+
+
+ |
+ 9. Practices git with at least 15 small commits and meaningful commit messages
+ |
+
+ yes
+ |
+
+
+
+## Functional Requirements
+
+
+
+ | Functional Requirement
+ |
+ Feedback (yes/no)
+ |
+
+
+ 1. As a user of the CLI program, I can list users and channels with the commands list users and list channels
+ |
+
+ yes
+ |
+
+
+
+ 2. As a user of the CLI program, I can select users and channels with the commands select user and select channel
+ |
+
+ yes
+ |
+
+
+
+ 3. As a user of the CLI program, I can show the details of a selected user or channel with the command details
+ |
+
+ yes
+ |
+
+
+
+ 4. As a user of the CLI program, when I input something inappropriately, the program runs without crashing. Example commands to try are do_something, or select user followed by Mr. Fakename
+ |
+
+ yes
+ |
+
+
+
+**At the end of this review, don't forget to commit and push your review. Otherwise, instructors won't be able to see your work.**
diff --git a/feedback.md b/feedback.md
index f90b999..3b8baa0 100644
--- a/feedback.md
+++ b/feedback.md
@@ -1,8 +1,8 @@
# Feedback Rubric
- Student Being Reviewed:
-- Reviewer:
-- Classroom:
+- Reviewer: Yieni
+- Classroom: Space
## Manual App Testing
@@ -17,7 +17,7 @@
1. Practices best practices working with APIs. (The .env is not checked into git, and no API token was directly used in the Ruby code without ENV.)
- yes/no
+ yes
|
@@ -26,7 +26,7 @@
2. Practices error handling with APIs. (For all pieces of code that make an API call, it handles API requests that come back with errors/error status codes appropriately.)
- yes/no
+ yes
|
@@ -35,7 +35,7 @@
3. Implements inheritance and inheritance idioms. There is a Recipient class. User and Channel inherit from Recipient. In Recipient, there are appropriate methods defined that are used in both User and Channel. Some may be implemented. Some may be template methods.
- yes/no
+ yes
|
@@ -51,7 +51,7 @@
- yes/no
+ yes
|
@@ -60,7 +60,7 @@
5. Practices instance methods vs. class methods appropriately. (The methods to list all Channels or Users is a class method within those respective classes.)
- yes/no
+ yes
|
@@ -70,7 +70,7 @@
6. Practices best practices for testing. (The project has and uses VCR mocking when running tests, and can run offline.)
- yes/no
+ yes
|
@@ -80,7 +80,7 @@
7. Practices writing tests. (The User, Channel, and Workspace classes have unit tests.)
- yes/no
+ yes
|
@@ -90,7 +90,7 @@
8. There are also tests for sending messages (the location of these tests may differ, but is likely in Recipient)
- yes/no
+ yes
|
@@ -100,7 +100,7 @@
9. Practices git with at least 15 small commits and meaningful commit messages
- yes/no
+ no
|
@@ -118,7 +118,7 @@
1. As a user of the CLI program, I can list users and channels with the commands list users and list channels
|
- yes/no
+ yes
|
@@ -126,7 +126,7 @@
2. As a user of the CLI program, I can select users and channels with the commands select user and select channel
|
- yes/no
+ yes
|
@@ -134,7 +134,7 @@
3. As a user of the CLI program, I can show the details of a selected user or channel with the command details
|
- yes/no
+ no- the show details feature isn't working. It keeps saying wrong input even when a user or channel is selected.
|
@@ -142,7 +142,7 @@
4. As a user of the CLI program, when I input something inappropriately, the program runs without crashing. Example commands to try are do_something, or select user followed by Mr. Fakename
|
- yes/no
+ yes
|
diff --git a/individual-reflection.md b/individual-reflection.md
index 603cdeb..f62e050 100644
--- a/individual-reflection.md
+++ b/individual-reflection.md
@@ -9,48 +9,54 @@ Answer the following comprehension questions **within this file.** Write your an
### `GET` Request Review
1. Describe a GET request that your project makes, and the high-level description of what it does
- - Answer:
+ - Answer: Getting a list of all users of the workspace.
1. What is the verb of this request?
- - Answer:
+ - Answer: self.get
1. What is the path (or the URL, or endpoint) of this request?
- - Answer:
+ - Answer: "https://slack.com/api/users.list"
1. What are the query params (the additional data sent with the request, besides the verb and the path)?
- - Answer:
+ - Answer: the slack token associated with the app we created in Slack
1. What is the syntax used to make this request? (Copy and paste a code snippet here)
- Answer:
```ruby
# Copy and paste your answer below this comment
-
+ url = "https://slack.com/api/users.list"
+ param = {token: ENV["SLACK_BOT_TOKEN"]}
+ result = self.get(url, param)
# Copy and paste your answer above this comment
```
1. What does the program do if the response comes back with a status code of 200?
- - Answer:
+ - Answer: It returns a list of users.
1. What does the program do if the response does not come back with a status code of 200?
- - Answer:
+ - Answer: it does not return the required list.
### `POST` Request Review
If your project does not make a POST request, read through Wave 3 on the original Slack CLI, and research and answer questions 1, 2, 3, 4, 6, and 7.
1. Describe a POST request that your project makes, and the high-level description of what it does
- - Answer:
+- Answer: The post message method has a post request: it sends an http request to the server, the request takes a url and a token and the message you want to send as params, uses the token to authenticate the app/user is allowed to post messages, then takes the message param and sends it to the user/channel who's slack id was provided in the http request
1. What is the verb of this request?
- - Answer:
+ - Answer: post
1. What is the path (or the URL, or endpoint) of this request?
- - Answer:
+ - Answer: "https://slack.com/api/chat.postMessage"
1. What are the query params (the additional data sent with the request, besides the verb and the path)?
- - Answer:
+ - Answer: {token: token, channel: recipient, text: message}
1. What is the syntax used to make this request? (Copy and paste a code snippet here)
- Answer:
```ruby
# Copy and paste your answer below this comment
-
+ url = "https://slack.com/api/chat.postMessage"
+ recipient = self.slack_id
+ token = ENV["SLACK_BOT_TOKEN"]
+ message = HTTParty.post(url, query: {token: token, channel: recipient, text: message})
# Copy and paste your answer above this comment
```
1. What does the program do if the response comes back with a status code of 200?
- - Answer:
+- Answer: the program looks for a 200 status code, but it is not enough on its own, according to slacks http responses, you need an additional {message: " ok"} from the server to make sure request went through successfully
+
1. What does the program do if the response does not come back with a status code of 200?
- - Answer:
+ - Answer: the program will return the error
## Request & Response Cycle
@@ -62,11 +68,11 @@ There are two actors:
Based on the project requirements, when Grace enters "list channels,"
1. What is the request being made in the program?
- - Answer:
+ - Answer: self.get(url, param) where url is the list channels url and the param being the token
1. Who is the client?
- - Answer:
+ - Answer: Grace is the client
1. Who is the server?
- - Answer:
+ - Answer: slack.com/api/channels.list
## Part 2: Optional Refactoring