From 983f777954e8375b1780577eaa10eaf049edc46f Mon Sep 17 00:00:00 2001 From: Jessica Stone Date: Fri, 27 Mar 2020 14:11:29 -0700 Subject: [PATCH 1/2] add feedback --- feedback.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/feedback.md b/feedback.md index f90b999..3e31a16 100644 --- a/feedback.md +++ b/feedback.md @@ -1,8 +1,8 @@ # Feedback Rubric -- Student Being Reviewed: -- Reviewer: -- Classroom: +- Student Being Reviewed: Liv +- Reviewer: Jessica +- 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, except for the send(message) method @@ -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; the methods are small enough that they don't necessarily need helper methods. There is a helper method in the slack.rb file for the input prompt @@ -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 - only 11 commits. Commits could be more meaningful - try focusing on specific problems you solve with each commit @@ -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 + no, list users/channels is printing out the entire API request instead of formatted details, and also sends a message of the headers to a slack channel @@ -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 + yes @@ -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; it would be good to add feedback when an invalid user/channel is selected but the program handles this by keeping the previous valid selection From f1befe537e1b4bcda2a35ad94a025321f6c27422 Mon Sep 17 00:00:00 2001 From: mulhoo Date: Sat, 28 Mar 2020 18:21:12 -0700 Subject: [PATCH 2/2] individual reflection complete --- individual-reflection.md | 52 +++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 17 deletions(-) diff --git a/individual-reflection.md b/individual-reflection.md index 603cdeb..8860687 100644 --- a/individual-reflection.md +++ b/individual-reflection.md @@ -9,48 +9,66 @@ 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: self.list_all in channel/user gets the list of slack users/channels. The server looks for the requested data and sends it back. 1. What is the verb of this request? - - Answer: + - Answer: get 1. What is the path (or the URL, or endpoint) of this request? - - Answer: + - Answer: "https://api.slack.com/api/conversations.list" , "https://api.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: token only required one in order to authorize that you can access the info 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 - + def self.get(url) + response = HTTParty.get(url, query: {token: ENV['SLACK_TOKEN']}) + + if response.code != 200 || response["ok"] == false + raise SlackAPIError, "We encountered a problem: #{response["error"]}" + end + + return response + end # 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: returns instance of HTTParty::Response 1. What does the program do if the response does not come back with a status code of 200? - - Answer: + - Answer: raises SlackAPIError ### `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: Recipient send_message sends post request, which sends message to user or channel. Tries to create new data entry, server responds to whether it was successful or not 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 (for authorization), channel(ID or name okay), text to be sent 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 - + def send(message) + response = HTTParty.post( + "https://api.slack.com/api/chat.postMessage", + body: { + token: ENV['SLACK_TOKEN'], + text: message, + channel: @slack_id + }, + headers: { 'Content-Type' => 'application/x-www-form-urlencoded' } + ) + end # 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: message sends 1. What does the program do if the response does not come back with a status code of 200? - - Answer: + - Answer: should raise SlackAPIError ## Request & Response Cycle @@ -62,11 +80,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: as soon as slack.rb is run a new Workspace is created, which auto retrieves the information for users and channels. Does this with a get request. 1. Who is the client? - - Answer: + - Answer: Grace 1. Who is the server? - - Answer: + - Answer: Slack API server ## Part 2: Optional Refactoring