Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions feedback.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Feedback Rubric

- Student Being Reviewed:
- Reviewer:
- Classroom:
- Student Being Reviewed: Yesenia Torres
- Reviewer: Nataliya Pogodina
- Classroom: Time

## Manual App Testing

Expand All @@ -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.)
</td>
<td>
yes/no
yes (might be a good idea to name the token "SLACK_TOKEN" rather than "BOT_TOKEN" because if we were using multiple APIs, it could be confusing which token is for which API)
</td>
</tr>

Expand All @@ -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.)
</td>
<td>
yes/no
yes (exceptions are raised and info about the error is printed to the user - great!)
</td>
</tr>

Expand All @@ -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.
</td>
<td>
yes/no
yes (two implemented methods: self.get and send_message; two template methods: self.list_all and details)
</td>
</tr>

Expand All @@ -51,7 +51,7 @@
</ul>
</td>
<td>
yes/no
yes (the only long method is main in slack.rb, but this is expected because it includes CLI interface and logic in it)
</td>
</tr>

Expand All @@ -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.)
</td>
<td>
yes/no
yes
</td>
</tr>

Expand All @@ -70,7 +70,7 @@
6. Practices best practices for testing. (The project has and uses VCR mocking when running tests, and can run offline.)
</td>
<td>
yes/no
yes
</td>
</tr>

Expand All @@ -80,7 +80,7 @@
7. Practices writing tests. (The User, Channel, and Workspace classes have unit tests.)
</td>
<td>
yes/no
yes (41 assertions - very nice!)
</td>
</tr>

Expand All @@ -90,7 +90,7 @@
8. There are also tests for sending messages (the location of these tests may differ, but is likely in Recipient)
</td>
<td>
yes/no
yes (the tests are in workspace_test.rb)
</td>
</tr>

Expand All @@ -100,7 +100,7 @@
9. Practices git with at least 15 small commits and meaningful commit messages
</td>
<td>
yes/no
yes (there are only ~11 commints from Yesenia, but they are well structured and easy to understand; you can see Yesenia working on the program in meaningful chunks and I honestly think these are enough for the project of this size/complexity)
</td>
</tr>
</table>
Expand All @@ -118,31 +118,31 @@
<td>1. As a user of the CLI program, I can <strong>list</strong> users and channels with the commands <code>list users</code> and <code>list channels</code>
</td>
<td>
yes/no
yes
</td>

</tr>
<tr>
<td>2. As a user of the CLI program, I can <strong>select</strong> users and channels with the commands <code>select user</code> and <code>select channel</code>
</td>
<td>
yes/no
yes
</td>
</tr>

<tr>
<td>3. As a user of the CLI program, I can show the details of a selected user or channel with the command <code>details</code>
</td>
<td>
yes/no
yes
</td>
</tr>

<tr>
<td>4. As a user of the CLI program, when I input something inappropriately, the program runs without crashing. Example commands to try are <code>do_something</code>, or <code>select user</code> followed by <code>Mr. Fakename</code>
</td>
<td>
yes/no
yes
</td>
</tr>
</table>
Expand Down
40 changes: 20 additions & 20 deletions individual-reflection.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,51 +6,51 @@ Answer the following comprehension questions **within this file.** Write your an

**At the end of this reflection, don't forget to commit and push your answers. Otherwise, instructors won't be able to see your work.**

### `GET` Request Review
### `GET` Request

1. Describe a GET request that your project makes, and the high-level description of what it does
- Answer:
- Answer: *One get request my program does begins in my Channel class (line #19) and traces back to the actual get request in the Recipient class (line #16). The get method in Recipient uses a Slack API link & HTTParty to get data from the Slack workspace I used for this project. I make use of this method in my Channel class by calling for a detailed list of channels in the workspace.*
1. What is the verb of this request?
- Answer:
- Answer: *The verb is "get".*
1. What is the path (or the URL, or endpoint) of this request?
- Answer:
- Answer: *"https://slack.com/api/conversations.list"*
1. What are the query params (the additional data sent with the request, besides the verb and the path)?
- Answer:
- Answer: *The only other query param is the "token" parameter which holds my unique bot token.*
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

requested_data = HTTParty.get(url, query: {token: ENV["BOT_TOKEN"]})
# 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:
1. What does the program do if the response comes back with a status code of 200?
- Answer: *In terms of what data is returned, one of two things can happen: the get request either responds with a detailed list of channels in the workspace my bot token is associated with, OR, it also can return an error message if something went wrong with the API call such as a typo in the url or token. The Slack API still sends back a 200 OK status in the latter case.*
1. What does the program do if the response does not come back with a status code of 200?
- Answer:
- Answer: *A custom exception is raised when a 200 code is not returned. In the case where a 200 OK status and error message is returned, the json data that is returned includes a key value pair of " 'ok': false ", which lets us know that the request failed. My program makes use of this fact and raises a custom exception whenever it happens.*

### `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: *One post request my program does begins in my Workspace class (line #43) and traces back to the actual post request in the Recipient class (lines #29-30). The post method in Recipient uses a Slack API link & HTTParty to post data to a specific channel or user in the Slack workspace I used for this project. I make use of this method in my Workspace class by passing it the values of the user/channel the CLI user wants to send the message to and the text of the message itself.*
1. What is the verb of this request?
- Answer:
- Answer: *The verb is "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: *The other query params are the "token" parameter which holds my unique bot token, the "channel" parameter, which dictates which channel/user to send the message to, and the "text" parameter, which holds the text of the message itself.*
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

sent_message_details = HTTParty.post("https://slack.com/api/chat.postMessage", query: {token: ENV["BOT_TOKEN"], channel: message_reciever, 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 puts "Message sent successfully." to the CLI user and posts a message to the selected channel/user.*
1. What does the program do if the response does not come back with a status code of 200?
- Answer:
- Answer: *The program raises a custom exception and does not post anything.*

## Request & Response Cycle

Expand All @@ -62,11 +62,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: *In layman's terms the request is saying: "Get me a list of all channels in the workspace. In this list include the channel name, slack id, topic, and member count."*
1. Who is the client?
- Answer:
- Answer: *slack.rb*
1. Who is the server?
- Answer:
- Answer: *Slack API*

## Part 2: Optional Refactoring

Expand All @@ -80,4 +80,4 @@ If your reflection inspired you to make minimal changes to your Slack CLI implem

### Describe your optional Slack CLI changes here

Answer:
Answer: *For my initial submission I did not perform a post request, nor did I have a "send message" feature for my CLI. Thus, I went back and implemented that functionality and created tests for it before answering the questions under "Post Request Review". I also did a little re-formatting. There are no other changes to the project I wish to make at this time.*