diff --git a/README.md b/README.md index 76bdc9a..5d93af1 100755 --- a/README.md +++ b/README.md @@ -1,14 +1,25 @@ [![General Assembly Logo](https://camo.githubusercontent.com/1a91b05b8f4d44b5bbfb83abac2b0996d8e26c92/687474703a2f2f692e696d6775722e636f6d2f6b6538555354712e706e67)](https://generalassemb.ly/education/web-development-immersive) -# rails-api-template +# Shoop API -A template for starting projects with `rails-api`. Includes authentication. +Make your art dance with SHOOP. -At the beginning of each cohort, update the versions in [`Gemfile`](Gemfile). +- Shoop App: https://sjruby.github.io/wdi-client-project-two/index.html +- Shoop Client Repo: https://github.com/sjruby/wdi-client-project-two -## Dependencies +## About Shoop -Install with `bundle install`. +Shoop allows users to generate random patters of two colors on a 28x28 grid. Further it allows users to animate the board according Conways Game Of Life Rules. + +## Data Model + +The final ERD is below: +[Imgur](http://i.imgur.com/iJJHGzt.jpg?1) + +## Tests +rspec testing has been set up for the Boards resources requests, routes, + +## Dependinces: - [`rails-api`](https://github.com/rails-api/rails-api) - [`rails`](https://github.com/rails/rails) @@ -16,67 +27,18 @@ Install with `bundle install`. - [`ruby`](https://www.ruby-lang.org/en/) - [`postgres`](http://www.postgresql.org) -Until Rails 5 is released, this template should follow the most recent released -version of Rails 4, as well as track `master` branches for `rails-api` and -`active_model_serializers`. - -## Installation - -1. [Download](../../archive/master.zip) this template. -1. Unzip and rename the template directory. -1. Empty [`README.md`](README.md) and fill with your own content. -1. Move into the new project and `git init`. -1. Install dependencies with `bundle install`. -1. Rename your app module in `config/application.rb` (change - `RailsApiTemplate`). -1. Rename your project database in `config/database.yml` (change - `'rails-api-template'`). +## Local Setup + 1. Create a `.env` for sensitive settings (`touch .env`). 1. Generate new `development` and `test` secrets (`bundle exec rake secret`). 1. Store them in `.env` with keys `SECRET_KEY_BASE_` respectively. -1. In order to make requests to your deployed API, you will need to set - `SECRET_KEY_BASE` in the environment of the production API (using `heroku - config:set` or the Heroku dashboard). -1. In order to make requests from your deployed client application, you will - need to set `CLIENT_ORIGIN` in the environment of the production API (e.g. - `heroku config:set CLIENT_ORIGIN https://.github.io`). -1. Setup your database with `bin/rake db:nuke_pave` or `bundle exec rake - db:nuke_pave`. -1. Run the API server with `bin/rails server` or `bundle exec rails server`. - -## Structure - -This template follows the standard project structure in Rails 4. -`curl` command scripts are stored in [`scripts`](scripts) with names that -correspond to API actions. -User authentication is built-in. -## Tasks +## Authentication API -Developers should run these often! - -- `bin/rake routes` lists the endpoints available in your API. -- `bin/rake test` runs automated tests. -- `bin/rails console` opens a REPL that pre-loads the API. -- `bin/rails db` opens your database client and loads the correct database. -- `bin/rails server` starts the API. -- `scripts/*.sh` run various `curl` commands to test the API. See below. - - - - -## API - -Use this as the basis for your own API documentation. Add a new third-level -heading for your custom entities, and follow the pattern provided for the -built-in user authentication documentation. - -Scripts are included in [`scripts`](scripts) to test built-in actions. Add your -own scripts to test your custom API. As an alternative, you can write automated -tests in RSpec to test your API. +Below are the authentication actions and associated Sriptes ### Authentication @@ -274,27 +236,178 @@ Content-Type: application/json; charset=utf-8 } } ``` +## Shoop API + +Below are the actions associated with CRUDING on the Boards resource + +| Verb | URI Pattern | Controller#Action | +|-------|---------------|-------------------| +| GET | `/list-boards'| `boards#index` | +| GET | `/boards/1` | `boards#show` | +| POST | `/boards` | `boards#create` | +| PATCH | `/boards/1` | `boards#show` | +| DELETE| `/boards/1` | `boards#show` | + +#### GET /boards + +Request: + +```sh +curl --include --request GET https://protected-ridge-58465.herokuapp.com/boards \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ +``` +Response: + +```md +HTTP/1.1 200 OK +Content-Type: application/json; charset=utf-8 + +{ + "boards": [ + { + "id": 2, + "title": "test" + "cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + }, + + { + "id": 2, + "title": "NewBoard" + "cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + } + ] +} +``` + + +## Shoop API + +Below are the actions associated with CRUDING on the Boards resource + +| Verb | URI Pattern | Controller#Action | +|-------|--------------|-------------------| +| GET | `/boards` | `boards#index` | +| GET | `/boards/1` | `boards#show` | +| POST | `/boards` | `boards#create` | +| PATCH | `/boards/1` | `boards#show` | +| DELETE| `/boards/1` | `boards#show` | + +#### GET /boards + +Request: + +```sh +curl --include --request GET https://protected-ridge-58465.herokuapp.com/boards \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ +``` +Response: + +```md +HTTP/1.1 200 OK +Content-Type: application/json; charset=utf-8 + +{ + "boards": [ + { + "id": 2, + "title": "test" + "cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + }, + + { + "id": 2, + "title": "NewBoard" + "cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + } + ] +} +``` + + +#### GET /boards/:id +Request: + +```sh +curl --include --request GET https://protected-ridge-58465.herokuapp.com/boards/2 \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ +``` -### Reset Database without dropping +Response: -This is not a task developers should run often, but it is sometimes necessary. +```md +HTTP/1.1 200 OK +Content-Type: application/json; charset=utf-8 +{ +"board": [ + { + "id": 2, + "title": "test" + "cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + } + } +``` -**locally** +#### POST /boards +Request: ```sh -bin/rake db:migrate VERSION=0 -bin/rake db:migrate db:seed db:examples +curl --include --request POST https://protected-ridge-58465.herokuapp.com/boards \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ + --data '{ + "board": { + "title": "Ima board", + "cells": ""[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]"" + } + }' ``` -**heroku** +Response: + +```md +HTTP/1.1 201 Created +Content-Type: application/json; charset=utf-8 + + +{ + "board": { + "title": "Ima board", + "cells": "[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]" + } + } + +``` +#### PATCH /boards/1 + +Request: ```sh -heroku run rake db:migrate VERSION=0 -heroku run rake db:migrate db:seed db:examples +curl --include --request PATCH https://protected-ridge-58465.herokuapp.com/boards \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ + --data '{ + "board": { + "title": "Ima UPDATED BOARD", + "cells": ""[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2}]]"" + } + }' ``` -## [License](LICENSE) +Response: -1. All content is licensed under a CC­BY­NC­SA 4.0 license. -1. All software code is licensed under GNU GPLv3. For commercial use or - alternative licensing, please contact legal@ga.co. +```md +HTTP/1.1 204 No Content +``` + +#### DELETE /boards/1 + +Request: + +```sh +curl --include --request DELETE https://protected-ridge-58465.herokuapp.com/boards/1 \ + --header "Authorization: Token token=3481054d61508f98d6c40aeccfeacaa2" \ +``` + +Response: + +```md +HTTP/1.1 204 No Content +``` diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 9952531..8a4b136 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -2,6 +2,11 @@ class BoardsController < ProtectedController before_action :set_board, only: [:show, :update, :destroy] def index + @boards = Board + render json: @boards + end + + def listboards @boards = Board.where(user: current_user.id) render json: @boards diff --git a/app/models/board.rb b/app/models/board.rb index 1d8bcff..4a7b4a8 100644 --- a/app/models/board.rb +++ b/app/models/board.rb @@ -1,4 +1,4 @@ class Board < ApplicationRecord - serialize :cells + # serialize :cells belongs_to :user end diff --git a/config/routes.rb b/config/routes.rb index bb334e0..2d9f206 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -5,6 +5,7 @@ post '/sign-in' => 'users#signin' delete '/sign-out/:id' => 'users#signout' patch '/change-password/:id' => 'users#changepw' + get '/list-boards' => 'boards#listboards' resources :users, only: [:index, :show] resources :boards, except: [:new, :edit] end diff --git a/scripts/create-boarrd.sh b/scripts/create-boarrd.sh index 8db1998..5a31e3b 100644 --- a/scripts/create-boarrd.sh +++ b/scripts/create-boarrd.sh @@ -4,6 +4,9 @@ curl --include --request POST http://localhost:4741/boards \ --header "Content-Type: application/json" \ - --data '{"boards":[{"id":1,"title":"this is the board","cells":"[[{\"xCord\":0,\"yCord\":0,\"intialValue\":2},{\"xCord\":0,\"yCord\":1,\"intialValue\":1},{\"xCord\":0,\"yCord\":2,\"intialValue\":2},{\"xCord\":0,\"yCord\":3,\"intialValue\":1},{\"xCord\":0,\"yCord\":4,\"intialValue\":2},{\"xCord\":0,\"yCord\":5,\"intialValue\":2},{\"xCord\":0,\"yCord\":6,\"intialValue\":2},{\"xCord\":0,\"yCord\":7,\"intialValue\":2},{\"xCord\":0,\"yCord\":8,\"intialValue\":1},{\"xCord\":0,\"yCord\":9,\"intialValue\":2},{\"xCord\":0,\"yCord\":10,\"intialValue\":2},{\"xCord\":0,\"yCord\":11,\"intialValue\":1},{\"xCord\":0,\"yCord\":12,\"intialValue\":2},{\"xCord\":0,\"yCord\":13,\"intialValue\":2},{\"xCord\":0,\"yCord\":14,\"intialValue\":2},{\"xCord\":0,\"yCord\":15,\"intialValue\":2},{\"xCord\":0,\"yCord\":16,\"intialValue\":2},{\"xCord\":0,\"yCord\":17,\"intialValue\":2},{\"xCord\":0,\"yCord\":18,\"intialValue\":2},{\"xCord\":0,\"yCord\":19,\"intialValue\":1},{\"xCord\":0,\"yCord\":20,\"intialValue\":2},{\"xCord\":0,\"yCord\":21,\"intialValue\":1},{\"xCord\":0,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":1,\"yCord\":0,\"intialValue\":1},{\"xCord\":1,\"yCord\":1,\"intialValue\":1},{\"xCord\":1,\"yCord\":2,\"intialValue\":1},{\"xCord\":1,\"yCord\":3,\"intialValue\":1},{\"xCord\":1,\"yCord\":4,\"intialValue\":1},{\"xCord\":1,\"yCord\":5,\"intialValue\":2},{\"xCord\":1,\"yCord\":6,\"intialValue\":2},{\"xCord\":1,\"yCord\":7,\"intialValue\":1},{\"xCord\":1,\"yCord\":8,\"intialValue\":2},{\"xCord\":1,\"yCord\":9,\"intialValue\":1},{\"xCord\":1,\"yCord\":10,\"intialValue\":2},{\"xCord\":1,\"yCord\":11,\"intialValue\":2},{\"xCord\":1,\"yCord\":12,\"intialValue\":1},{\"xCord\":1,\"yCord\":13,\"intialValue\":1},{\"xCord\":1,\"yCord\":14,\"intialValue\":2},{\"xCord\":1,\"yCord\":15,\"intialValue\":2},{\"xCord\":1,\"yCord\":16,\"intialValue\":1},{\"xCord\":1,\"yCord\":17,\"intialValue\":2},{\"xCord\":1,\"yCord\":18,\"intialValue\":2},{\"xCord\":1,\"yCord\":19,\"intialValue\":2},{\"xCord\":1,\"yCord\":20,\"intialValue\":1},{\"xCord\":1,\"yCord\":21,\"intialValue\":2},{\"xCord\":1,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":2,\"yCord\":0,\"intialValue\":1},{\"xCord\":2,\"yCord\":1,\"intialValue\":1},{\"xCord\":2,\"yCord\":2,\"intialValue\":1},{\"xCord\":2,\"yCord\":3,\"intialValue\":2},{\"xCord\":2,\"yCord\":4,\"intialValue\":1},{\"xCord\":2,\"yCord\":5,\"intialValue\":2},{\"xCord\":2,\"yCord\":6,\"intialValue\":2},{\"xCord\":2,\"yCord\":7,\"intialValue\":2},{\"xCord\":2,\"yCord\":8,\"intialValue\":2},{\"xCord\":2,\"yCord\":9,\"intialValue\":1},{\"xCord\":2,\"yCord\":10,\"intialValue\":2},{\"xCord\":2,\"yCord\":11,\"intialValue\":1},{\"xCord\":2,\"yCord\":12,\"intialValue\":2},{\"xCord\":2,\"yCord\":13,\"intialValue\":1},{\"xCord\":2,\"yCord\":14,\"intialValue\":2},{\"xCord\":2,\"yCord\":15,\"intialValue\":1},{\"xCord\":2,\"yCord\":16,\"intialValue\":1},{\"xCord\":2,\"yCord\":17,\"intialValue\":2},{\"xCord\":2,\"yCord\":18,\"intialValue\":2},{\"xCord\":2,\"yCord\":19,\"intialValue\":2},{\"xCord\":2,\"yCord\":20,\"intialValue\":1},{\"xCord\":2,\"yCord\":21,\"intialValue\":1},{\"xCord\":2,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":3,\"yCord\":0,\"intialValue\":1},{\"xCord\":3,\"yCord\":1,\"intialValue\":2},{\"xCord\":3,\"yCord\":2,\"intialValue\":2},{\"xCord\":3,\"yCord\":3,\"intialValue\":2},{\"xCord\":3,\"yCord\":4,\"intialValue\":2},{\"xCord\":3,\"yCord\":5,\"intialValue\":2},{\"xCord\":3,\"yCord\":6,\"intialValue\":1},{\"xCord\":3,\"yCord\":7,\"intialValue\":2},{\"xCord\":3,\"yCord\":8,\"intialValue\":1},{\"xCord\":3,\"yCord\":9,\"intialValue\":2},{\"xCord\":3,\"yCord\":10,\"intialValue\":1},{\"xCord\":3,\"yCord\":11,\"intialValue\":2},{\"xCord\":3,\"yCord\":12,\"intialValue\":2},{\"xCord\":3,\"yCord\":13,\"intialValue\":1},{\"xCord\":3,\"yCord\":14,\"intialValue\":1},{\"xCord\":3,\"yCord\":15,\"intialValue\":2},{\"xCord\":3,\"yCord\":16,\"intialValue\":2},{\"xCord\":3,\"yCord\":17,\"intialValue\":2},{\"xCord\":3,\"yCord\":18,\"intialValue\":2},{\"xCord\":3,\"yCord\":19,\"intialValue\":1},{\"xCord\":3,\"yCord\":20,\"intialValue\":1},{\"xCord\":3,\"yCord\":21,\"intialValue\":2},{\"xCord\":3,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":4,\"yCord\":0,\"intialValue\":1},{\"xCord\":4,\"yCord\":1,\"intialValue\":1},{\"xCord\":4,\"yCord\":2,\"intialValue\":1},{\"xCord\":4,\"yCord\":3,\"intialValue\":2},{\"xCord\":4,\"yCord\":4,\"intialValue\":2},{\"xCord\":4,\"yCord\":5,\"intialValue\":2},{\"xCord\":4,\"yCord\":6,\"intialValue\":1},{\"xCord\":4,\"yCord\":7,\"intialValue\":1},{\"xCord\":4,\"yCord\":8,\"intialValue\":1},{\"xCord\":4,\"yCord\":9,\"intialValue\":1},{\"xCord\":4,\"yCord\":10,\"intialValue\":2},{\"xCord\":4,\"yCord\":11,\"intialValue\":2},{\"xCord\":4,\"yCord\":12,\"intialValue\":2},{\"xCord\":4,\"yCord\":13,\"intialValue\":2},{\"xCord\":4,\"yCord\":14,\"intialValue\":2},{\"xCord\":4,\"yCord\":15,\"intialValue\":1},{\"xCord\":4,\"yCord\":16,\"intialValue\":2},{\"xCord\":4,\"yCord\":17,\"intialValue\":2},{\"xCord\":4,\"yCord\":18,\"intialValue\":1},{\"xCord\":4,\"yCord\":19,\"intialValue\":1},{\"xCord\":4,\"yCord\":20,\"intialValue\":1},{\"xCord\":4,\"yCord\":21,\"intialValue\":2},{\"xCord\":4,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":5,\"yCord\":0,\"intialValue\":2},{\"xCord\":5,\"yCord\":1,\"intialValue\":2},{\"xCord\":5,\"yCord\":2,\"intialValue\":1},{\"xCord\":5,\"yCord\":3,\"intialValue\":2},{\"xCord\":5,\"yCord\":4,\"intialValue\":1},{\"xCord\":5,\"yCord\":5,\"intialValue\":1},{\"xCord\":5,\"yCord\":6,\"intialValue\":1},{\"xCord\":5,\"yCord\":7,\"intialValue\":1},{\"xCord\":5,\"yCord\":8,\"intialValue\":2},{\"xCord\":5,\"yCord\":9,\"intialValue\":2},{\"xCord\":5,\"yCord\":10,\"intialValue\":1},{\"xCord\":5,\"yCord\":11,\"intialValue\":2},{\"xCord\":5,\"yCord\":12,\"intialValue\":2},{\"xCord\":5,\"yCord\":13,\"intialValue\":2},{\"xCord\":5,\"yCord\":14,\"intialValue\":1},{\"xCord\":5,\"yCord\":15,\"intialValue\":2},{\"xCord\":5,\"yCord\":16,\"intialValue\":2},{\"xCord\":5,\"yCord\":17,\"intialValue\":2},{\"xCord\":5,\"yCord\":18,\"intialValue\":1},{\"xCord\":5,\"yCord\":19,\"intialValue\":2},{\"xCord\":5,\"yCord\":20,\"intialValue\":1},{\"xCord\":5,\"yCord\":21,\"intialValue\":2},{\"xCord\":5,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":6,\"yCord\":0,\"intialValue\":2},{\"xCord\":6,\"yCord\":1,\"intialValue\":2},{\"xCord\":6,\"yCord\":2,\"intialValue\":1},{\"xCord\":6,\"yCord\":3,\"intialValue\":1},{\"xCord\":6,\"yCord\":4,\"intialValue\":2},{\"xCord\":6,\"yCord\":5,\"intialValue\":2},{\"xCord\":6,\"yCord\":6,\"intialValue\":1},{\"xCord\":6,\"yCord\":7,\"intialValue\":1},{\"xCord\":6,\"yCord\":8,\"intialValue\":2},{\"xCord\":6,\"yCord\":9,\"intialValue\":2},{\"xCord\":6,\"yCord\":10,\"intialValue\":2},{\"xCord\":6,\"yCord\":11,\"intialValue\":2},{\"xCord\":6,\"yCord\":12,\"intialValue\":1},{\"xCord\":6,\"yCord\":13,\"intialValue\":2},{\"xCord\":6,\"yCord\":14,\"intialValue\":2},{\"xCord\":6,\"yCord\":15,\"intialValue\":2},{\"xCord\":6,\"yCord\":16,\"intialValue\":2},{\"xCord\":6,\"yCord\":17,\"intialValue\":1},{\"xCord\":6,\"yCord\":18,\"intialValue\":1},{\"xCord\":6,\"yCord\":19,\"intialValue\":1},{\"xCord\":6,\"yCord\":20,\"intialValue\":2},{\"xCord\":6,\"yCord\":21,\"intialValue\":2},{\"xCord\":6,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":7,\"yCord\":0,\"intialValue\":2},{\"xCord\":7,\"yCord\":1,\"intialValue\":2},{\"xCord\":7,\"yCord\":2,\"intialValue\":1},{\"xCord\":7,\"yCord\":3,\"intialValue\":2},{\"xCord\":7,\"yCord\":4,\"intialValue\":1},{\"xCord\":7,\"yCord\":5,\"intialValue\":2},{\"xCord\":7,\"yCord\":6,\"intialValue\":1},{\"xCord\":7,\"yCord\":7,\"intialValue\":1},{\"xCord\":7,\"yCord\":8,\"intialValue\":1},{\"xCord\":7,\"yCord\":9,\"intialValue\":2},{\"xCord\":7,\"yCord\":10,\"intialValue\":1},{\"xCord\":7,\"yCord\":11,\"intialValue\":1},{\"xCord\":7,\"yCord\":12,\"intialValue\":1},{\"xCord\":7,\"yCord\":13,\"intialValue\":1},{\"xCord\":7,\"yCord\":14,\"intialValue\":1},{\"xCord\":7,\"yCord\":15,\"intialValue\":1},{\"xCord\":7,\"yCord\":16,\"intialValue\":2},{\"xCord\":7,\"yCord\":17,\"intialValue\":1},{\"xCord\":7,\"yCord\":18,\"intialValue\":2},{\"xCord\":7,\"yCord\":19,\"intialValue\":2},{\"xCord\":7,\"yCord\":20,\"intialValue\":2},{\"xCord\":7,\"yCord\":21,\"intialValue\":2},{\"xCord\":7,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":8,\"yCord\":0,\"intialValue\":1},{\"xCord\":8,\"yCord\":1,\"intialValue\":1},{\"xCord\":8,\"yCord\":2,\"intialValue\":1},{\"xCord\":8,\"yCord\":3,\"intialValue\":2},{\"xCord\":8,\"yCord\":4,\"intialValue\":2},{\"xCord\":8,\"yCord\":5,\"intialValue\":1},{\"xCord\":8,\"yCord\":6,\"intialValue\":1},{\"xCord\":8,\"yCord\":7,\"intialValue\":2},{\"xCord\":8,\"yCord\":8,\"intialValue\":2},{\"xCord\":8,\"yCord\":9,\"intialValue\":1},{\"xCord\":8,\"yCord\":10,\"intialValue\":2},{\"xCord\":8,\"yCord\":11,\"intialValue\":1},{\"xCord\":8,\"yCord\":12,\"intialValue\":2},{\"xCord\":8,\"yCord\":13,\"intialValue\":1},{\"xCord\":8,\"yCord\":14,\"intialValue\":1},{\"xCord\":8,\"yCord\":15,\"intialValue\":1},{\"xCord\":8,\"yCord\":16,\"intialValue\":2},{\"xCord\":8,\"yCord\":17,\"intialValue\":1},{\"xCord\":8,\"yCord\":18,\"intialValue\":1},{\"xCord\":8,\"yCord\":19,\"intialValue\":1},{\"xCord\":8,\"yCord\":20,\"intialValue\":2},{\"xCord\":8,\"yCord\":21,\"intialValue\":1},{\"xCord\":8,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":9,\"yCord\":0,\"intialValue\":2},{\"xCord\":9,\"yCord\":1,\"intialValue\":1},{\"xCord\":9,\"yCord\":2,\"intialValue\":2},{\"xCord\":9,\"yCord\":3,\"intialValue\":2},{\"xCord\":9,\"yCord\":4,\"intialValue\":1},{\"xCord\":9,\"yCord\":5,\"intialValue\":2},{\"xCord\":9,\"yCord\":6,\"intialValue\":2},{\"xCord\":9,\"yCord\":7,\"intialValue\":1},{\"xCord\":9,\"yCord\":8,\"intialValue\":1},{\"xCord\":9,\"yCord\":9,\"intialValue\":2},{\"xCord\":9,\"yCord\":10,\"intialValue\":2},{\"xCord\":9,\"yCord\":11,\"intialValue\":1},{\"xCord\":9,\"yCord\":12,\"intialValue\":1},{\"xCord\":9,\"yCord\":13,\"intialValue\":2},{\"xCord\":9,\"yCord\":14,\"intialValue\":2},{\"xCord\":9,\"yCord\":15,\"intialValue\":2},{\"xCord\":9,\"yCord\":16,\"intialValue\":2},{\"xCord\":9,\"yCord\":17,\"intialValue\":1},{\"xCord\":9,\"yCord\":18,\"intialValue\":1},{\"xCord\":9,\"yCord\":19,\"intialValue\":2},{\"xCord\":9,\"yCord\":20,\"intialValue\":2},{\"xCord\":9,\"yCord\":21,\"intialValue\":1},{\"xCord\":9,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":10,\"yCord\":0,\"intialValue\":2},{\"xCord\":10,\"yCord\":1,\"intialValue\":1},{\"xCord\":10,\"yCord\":2,\"intialValue\":1},{\"xCord\":10,\"yCord\":3,\"intialValue\":2},{\"xCord\":10,\"yCord\":4,\"intialValue\":1},{\"xCord\":10,\"yCord\":5,\"intialValue\":1},{\"xCord\":10,\"yCord\":6,\"intialValue\":2},{\"xCord\":10,\"yCord\":7,\"intialValue\":1},{\"xCord\":10,\"yCord\":8,\"intialValue\":2},{\"xCord\":10,\"yCord\":9,\"intialValue\":2},{\"xCord\":10,\"yCord\":10,\"intialValue\":1},{\"xCord\":10,\"yCord\":11,\"intialValue\":2},{\"xCord\":10,\"yCord\":12,\"intialValue\":1},{\"xCord\":10,\"yCord\":13,\"intialValue\":1},{\"xCord\":10,\"yCord\":14,\"intialValue\":2},{\"xCord\":10,\"yCord\":15,\"intialValue\":1},{\"xCord\":10,\"yCord\":16,\"intialValue\":2},{\"xCord\":10,\"yCord\":17,\"intialValue\":1},{\"xCord\":10,\"yCord\":18,\"intialValue\":1},{\"xCord\":10,\"yCord\":19,\"intialValue\":2},{\"xCord\":10,\"yCord\":20,\"intialValue\":1},{\"xCord\":10,\"yCord\":21,\"intialValue\":2},{\"xCord\":10,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":11,\"yCord\":0,\"intialValue\":2},{\"xCord\":11,\"yCord\":1,\"intialValue\":1},{\"xCord\":11,\"yCord\":2,\"intialValue\":1},{\"xCord\":11,\"yCord\":3,\"intialValue\":2},{\"xCord\":11,\"yCord\":4,\"intialValue\":1},{\"xCord\":11,\"yCord\":5,\"intialValue\":1},{\"xCord\":11,\"yCord\":6,\"intialValue\":1},{\"xCord\":11,\"yCord\":7,\"intialValue\":1},{\"xCord\":11,\"yCord\":8,\"intialValue\":1},{\"xCord\":11,\"yCord\":9,\"intialValue\":2},{\"xCord\":11,\"yCord\":10,\"intialValue\":1},{\"xCord\":11,\"yCord\":11,\"intialValue\":1},{\"xCord\":11,\"yCord\":12,\"intialValue\":1},{\"xCord\":11,\"yCord\":13,\"intialValue\":1},{\"xCord\":11,\"yCord\":14,\"intialValue\":2},{\"xCord\":11,\"yCord\":15,\"intialValue\":2},{\"xCord\":11,\"yCord\":16,\"intialValue\":2},{\"xCord\":11,\"yCord\":17,\"intialValue\":2},{\"xCord\":11,\"yCord\":18,\"intialValue\":2},{\"xCord\":11,\"yCord\":19,\"intialValue\":2},{\"xCord\":11,\"yCord\":20,\"intialValue\":1},{\"xCord\":11,\"yCord\":21,\"intialValue\":2},{\"xCord\":11,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":12,\"yCord\":0,\"intialValue\":1},{\"xCord\":12,\"yCord\":1,\"intialValue\":1},{\"xCord\":12,\"yCord\":2,\"intialValue\":1},{\"xCord\":12,\"yCord\":3,\"intialValue\":2},{\"xCord\":12,\"yCord\":4,\"intialValue\":2},{\"xCord\":12,\"yCord\":5,\"intialValue\":2},{\"xCord\":12,\"yCord\":6,\"intialValue\":1},{\"xCord\":12,\"yCord\":7,\"intialValue\":1},{\"xCord\":12,\"yCord\":8,\"intialValue\":1},{\"xCord\":12,\"yCord\":9,\"intialValue\":2},{\"xCord\":12,\"yCord\":10,\"intialValue\":1},{\"xCord\":12,\"yCord\":11,\"intialValue\":2},{\"xCord\":12,\"yCord\":12,\"intialValue\":2},{\"xCord\":12,\"yCord\":13,\"intialValue\":2},{\"xCord\":12,\"yCord\":14,\"intialValue\":1},{\"xCord\":12,\"yCord\":15,\"intialValue\":1},{\"xCord\":12,\"yCord\":16,\"intialValue\":1},{\"xCord\":12,\"yCord\":17,\"intialValue\":1},{\"xCord\":12,\"yCord\":18,\"intialValue\":2},{\"xCord\":12,\"yCord\":19,\"intialValue\":2},{\"xCord\":12,\"yCord\":20,\"intialValue\":2},{\"xCord\":12,\"yCord\":21,\"intialValue\":2},{\"xCord\":12,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":13,\"yCord\":0,\"intialValue\":2},{\"xCord\":13,\"yCord\":1,\"intialValue\":2},{\"xCord\":13,\"yCord\":2,\"intialValue\":1},{\"xCord\":13,\"yCord\":3,\"intialValue\":2},{\"xCord\":13,\"yCord\":4,\"intialValue\":2},{\"xCord\":13,\"yCord\":5,\"intialValue\":2},{\"xCord\":13,\"yCord\":6,\"intialValue\":2},{\"xCord\":13,\"yCord\":7,\"intialValue\":1},{\"xCord\":13,\"yCord\":8,\"intialValue\":1},{\"xCord\":13,\"yCord\":9,\"intialValue\":2},{\"xCord\":13,\"yCord\":10,\"intialValue\":1},{\"xCord\":13,\"yCord\":11,\"intialValue\":1},{\"xCord\":13,\"yCord\":12,\"intialValue\":1},{\"xCord\":13,\"yCord\":13,\"intialValue\":1},{\"xCord\":13,\"yCord\":14,\"intialValue\":1},{\"xCord\":13,\"yCord\":15,\"intialValue\":1},{\"xCord\":13,\"yCord\":16,\"intialValue\":2},{\"xCord\":13,\"yCord\":17,\"intialValue\":1},{\"xCord\":13,\"yCord\":18,\"intialValue\":1},{\"xCord\":13,\"yCord\":19,\"intialValue\":2},{\"xCord\":13,\"yCord\":20,\"intialValue\":2},{\"xCord\":13,\"yCord\":21,\"intialValue\":2},{\"xCord\":13,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":14,\"yCord\":0,\"intialValue\":2},{\"xCord\":14,\"yCord\":1,\"intialValue\":1},{\"xCord\":14,\"yCord\":2,\"intialValue\":2},{\"xCord\":14,\"yCord\":3,\"intialValue\":2},{\"xCord\":14,\"yCord\":4,\"intialValue\":1},{\"xCord\":14,\"yCord\":5,\"intialValue\":2},{\"xCord\":14,\"yCord\":6,\"intialValue\":2},{\"xCord\":14,\"yCord\":7,\"intialValue\":2},{\"xCord\":14,\"yCord\":8,\"intialValue\":2},{\"xCord\":14,\"yCord\":9,\"intialValue\":2},{\"xCord\":14,\"yCord\":10,\"intialValue\":1},{\"xCord\":14,\"yCord\":11,\"intialValue\":2},{\"xCord\":14,\"yCord\":12,\"intialValue\":2},{\"xCord\":14,\"yCord\":13,\"intialValue\":1},{\"xCord\":14,\"yCord\":14,\"intialValue\":1},{\"xCord\":14,\"yCord\":15,\"intialValue\":2},{\"xCord\":14,\"yCord\":16,\"intialValue\":1},{\"xCord\":14,\"yCord\":17,\"intialValue\":2},{\"xCord\":14,\"yCord\":18,\"intialValue\":2},{\"xCord\":14,\"yCord\":19,\"intialValue\":1},{\"xCord\":14,\"yCord\":20,\"intialValue\":2},{\"xCord\":14,\"yCord\":21,\"intialValue\":2},{\"xCord\":14,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":15,\"yCord\":0,\"intialValue\":2},{\"xCord\":15,\"yCord\":1,\"intialValue\":1},{\"xCord\":15,\"yCord\":2,\"intialValue\":1},{\"xCord\":15,\"yCord\":3,\"intialValue\":2},{\"xCord\":15,\"yCord\":4,\"intialValue\":2},{\"xCord\":15,\"yCord\":5,\"intialValue\":1},{\"xCord\":15,\"yCord\":6,\"intialValue\":1},{\"xCord\":15,\"yCord\":7,\"intialValue\":2},{\"xCord\":15,\"yCord\":8,\"intialValue\":2},{\"xCord\":15,\"yCord\":9,\"intialValue\":2},{\"xCord\":15,\"yCord\":10,\"intialValue\":2},{\"xCord\":15,\"yCord\":11,\"intialValue\":1},{\"xCord\":15,\"yCord\":12,\"intialValue\":2},{\"xCord\":15,\"yCord\":13,\"intialValue\":2},{\"xCord\":15,\"yCord\":14,\"intialValue\":2},{\"xCord\":15,\"yCord\":15,\"intialValue\":2},{\"xCord\":15,\"yCord\":16,\"intialValue\":2},{\"xCord\":15,\"yCord\":17,\"intialValue\":2},{\"xCord\":15,\"yCord\":18,\"intialValue\":2},{\"xCord\":15,\"yCord\":19,\"intialValue\":2},{\"xCord\":15,\"yCord\":20,\"intialValue\":1},{\"xCord\":15,\"yCord\":21,\"intialValue\":1},{\"xCord\":15,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":16,\"yCord\":0,\"intialValue\":1},{\"xCord\":16,\"yCord\":1,\"intialValue\":2},{\"xCord\":16,\"yCord\":2,\"intialValue\":1},{\"xCord\":16,\"yCord\":3,\"intialValue\":1},{\"xCord\":16,\"yCord\":4,\"intialValue\":2},{\"xCord\":16,\"yCord\":5,\"intialValue\":1},{\"xCord\":16,\"yCord\":6,\"intialValue\":2},{\"xCord\":16,\"yCord\":7,\"intialValue\":1},{\"xCord\":16,\"yCord\":8,\"intialValue\":1},{\"xCord\":16,\"yCord\":9,\"intialValue\":1},{\"xCord\":16,\"yCord\":10,\"intialValue\":2},{\"xCord\":16,\"yCord\":11,\"intialValue\":1},{\"xCord\":16,\"yCord\":12,\"intialValue\":1},{\"xCord\":16,\"yCord\":13,\"intialValue\":1},{\"xCord\":16,\"yCord\":14,\"intialValue\":2},{\"xCord\":16,\"yCord\":15,\"intialValue\":2},{\"xCord\":16,\"yCord\":16,\"intialValue\":2},{\"xCord\":16,\"yCord\":17,\"intialValue\":1},{\"xCord\":16,\"yCord\":18,\"intialValue\":1},{\"xCord\":16,\"yCord\":19,\"intialValue\":1},{\"xCord\":16,\"yCord\":20,\"intialValue\":2},{\"xCord\":16,\"yCord\":21,\"intialValue\":2},{\"xCord\":16,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":17,\"yCord\":0,\"intialValue\":2},{\"xCord\":17,\"yCord\":1,\"intialValue\":2},{\"xCord\":17,\"yCord\":2,\"intialValue\":2},{\"xCord\":17,\"yCord\":3,\"intialValue\":1},{\"xCord\":17,\"yCord\":4,\"intialValue\":1},{\"xCord\":17,\"yCord\":5,\"intialValue\":2},{\"xCord\":17,\"yCord\":6,\"intialValue\":1},{\"xCord\":17,\"yCord\":7,\"intialValue\":1},{\"xCord\":17,\"yCord\":8,\"intialValue\":2},{\"xCord\":17,\"yCord\":9,\"intialValue\":1},{\"xCord\":17,\"yCord\":10,\"intialValue\":1},{\"xCord\":17,\"yCord\":11,\"intialValue\":1},{\"xCord\":17,\"yCord\":12,\"intialValue\":2},{\"xCord\":17,\"yCord\":13,\"intialValue\":1},{\"xCord\":17,\"yCord\":14,\"intialValue\":2},{\"xCord\":17,\"yCord\":15,\"intialValue\":2},{\"xCord\":17,\"yCord\":16,\"intialValue\":2},{\"xCord\":17,\"yCord\":17,\"intialValue\":1},{\"xCord\":17,\"yCord\":18,\"intialValue\":2},{\"xCord\":17,\"yCord\":19,\"intialValue\":1},{\"xCord\":17,\"yCord\":20,\"intialValue\":2},{\"xCord\":17,\"yCord\":21,\"intialValue\":2},{\"xCord\":17,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":18,\"yCord\":0,\"intialValue\":1},{\"xCord\":18,\"yCord\":1,\"intialValue\":1},{\"xCord\":18,\"yCord\":2,\"intialValue\":2},{\"xCord\":18,\"yCord\":3,\"intialValue\":2},{\"xCord\":18,\"yCord\":4,\"intialValue\":2},{\"xCord\":18,\"yCord\":5,\"intialValue\":2},{\"xCord\":18,\"yCord\":6,\"intialValue\":1},{\"xCord\":18,\"yCord\":7,\"intialValue\":2},{\"xCord\":18,\"yCord\":8,\"intialValue\":1},{\"xCord\":18,\"yCord\":9,\"intialValue\":2},{\"xCord\":18,\"yCord\":10,\"intialValue\":2},{\"xCord\":18,\"yCord\":11,\"intialValue\":1},{\"xCord\":18,\"yCord\":12,\"intialValue\":1},{\"xCord\":18,\"yCord\":13,\"intialValue\":1},{\"xCord\":18,\"yCord\":14,\"intialValue\":1},{\"xCord\":18,\"yCord\":15,\"intialValue\":1},{\"xCord\":18,\"yCord\":16,\"intialValue\":2},{\"xCord\":18,\"yCord\":17,\"intialValue\":2},{\"xCord\":18,\"yCord\":18,\"intialValue\":2},{\"xCord\":18,\"yCord\":19,\"intialValue\":1},{\"xCord\":18,\"yCord\":20,\"intialValue\":1},{\"xCord\":18,\"yCord\":21,\"intialValue\":1},{\"xCord\":18,\"yCord\":22,\"intialValue\":2}],[{\"xCord\":19,\"yCord\":0,\"intialValue\":2},{\"xCord\":19,\"yCord\":1,\"intialValue\":1},{\"xCord\":19,\"yCord\":2,\"intialValue\":1},{\"xCord\":19,\"yCord\":3,\"intialValue\":1},{\"xCord\":19,\"yCord\":4,\"intialValue\":2},{\"xCord\":19,\"yCord\":5,\"intialValue\":1},{\"xCord\":19,\"yCord\":6,\"intialValue\":2},{\"xCord\":19,\"yCord\":7,\"intialValue\":2},{\"xCord\":19,\"yCord\":8,\"intialValue\":1},{\"xCord\":19,\"yCord\":9,\"intialValue\":1},{\"xCord\":19,\"yCord\":10,\"intialValue\":2},{\"xCord\":19,\"yCord\":11,\"intialValue\":1},{\"xCord\":19,\"yCord\":12,\"intialValue\":2},{\"xCord\":19,\"yCord\":13,\"intialValue\":1},{\"xCord\":19,\"yCord\":14,\"intialValue\":1},{\"xCord\":19,\"yCord\":15,\"intialValue\":1},{\"xCord\":19,\"yCord\":16,\"intialValue\":1},{\"xCord\":19,\"yCord\":17,\"intialValue\":1},{\"xCord\":19,\"yCord\":18,\"intialValue\":1},{\"xCord\":19,\"yCord\":19,\"intialValue\":1},{\"xCord\":19,\"yCord\":20,\"intialValue\":2},{\"xCord\":19,\"yCord\":21,\"intialValue\":1},{\"xCord\":19,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":20,\"yCord\":0,\"intialValue\":1},{\"xCord\":20,\"yCord\":1,\"intialValue\":1},{\"xCord\":20,\"yCord\":2,\"intialValue\":1},{\"xCord\":20,\"yCord\":3,\"intialValue\":2},{\"xCord\":20,\"yCord\":4,\"intialValue\":2},{\"xCord\":20,\"yCord\":5,\"intialValue\":2},{\"xCord\":20,\"yCord\":6,\"intialValue\":1},{\"xCord\":20,\"yCord\":7,\"intialValue\":1},{\"xCord\":20,\"yCord\":8,\"intialValue\":2},{\"xCord\":20,\"yCord\":9,\"intialValue\":1},{\"xCord\":20,\"yCord\":10,\"intialValue\":1},{\"xCord\":20,\"yCord\":11,\"intialValue\":2},{\"xCord\":20,\"yCord\":12,\"intialValue\":2},{\"xCord\":20,\"yCord\":13,\"intialValue\":1},{\"xCord\":20,\"yCord\":14,\"intialValue\":2},{\"xCord\":20,\"yCord\":15,\"intialValue\":2},{\"xCord\":20,\"yCord\":16,\"intialValue\":1},{\"xCord\":20,\"yCord\":17,\"intialValue\":2},{\"xCord\":20,\"yCord\":18,\"intialValue\":1},{\"xCord\":20,\"yCord\":19,\"intialValue\":2},{\"xCord\":20,\"yCord\":20,\"intialValue\":1},{\"xCord\":20,\"yCord\":21,\"intialValue\":2},{\"xCord\":20,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":21,\"yCord\":0,\"intialValue\":1},{\"xCord\":21,\"yCord\":1,\"intialValue\":2},{\"xCord\":21,\"yCord\":2,\"intialValue\":1},{\"xCord\":21,\"yCord\":3,\"intialValue\":1},{\"xCord\":21,\"yCord\":4,\"intialValue\":2},{\"xCord\":21,\"yCord\":5,\"intialValue\":2},{\"xCord\":21,\"yCord\":6,\"intialValue\":1},{\"xCord\":21,\"yCord\":7,\"intialValue\":2},{\"xCord\":21,\"yCord\":8,\"intialValue\":1},{\"xCord\":21,\"yCord\":9,\"intialValue\":2},{\"xCord\":21,\"yCord\":10,\"intialValue\":2},{\"xCord\":21,\"yCord\":11,\"intialValue\":1},{\"xCord\":21,\"yCord\":12,\"intialValue\":2},{\"xCord\":21,\"yCord\":13,\"intialValue\":2},{\"xCord\":21,\"yCord\":14,\"intialValue\":2},{\"xCord\":21,\"yCord\":15,\"intialValue\":2},{\"xCord\":21,\"yCord\":16,\"intialValue\":1},{\"xCord\":21,\"yCord\":17,\"intialValue\":2},{\"xCord\":21,\"yCord\":18,\"intialValue\":2},{\"xCord\":21,\"yCord\":19,\"intialValue\":1},{\"xCord\":21,\"yCord\":20,\"intialValue\":1},{\"xCord\":21,\"yCord\":21,\"intialValue\":1},{\"xCord\":21,\"yCord\":22,\"intialValue\":1}],[{\"xCord\":22,\"yCord\":0,\"intialValue\":2},{\"xCord\":22,\"yCord\":1,\"intialValue\":2},{\"xCord\":22,\"yCord\":2,\"intialValue\":1},{\"xCord\":22,\"yCord\":3,\"intialValue\":2},{\"xCord\":22,\"yCord\":4,\"intialValue\":1},{\"xCord\":22,\"yCord\":5,\"intialValue\":2},{\"xCord\":22,\"yCord\":6,\"intialValue\":2},{\"xCord\":22,\"yCord\":7,\"intialValue\":2},{\"xCord\":22,\"yCord\":8,\"intialValue\":2},{\"xCord\":22,\"yCord\":9,\"intialValue\":1},{\"xCord\":22,\"yCord\":10,\"intialValue\":1},{\"xCord\":22,\"yCord\":11,\"intialValue\":1},{\"xCord\":22,\"yCord\":12,\"intialValue\":2},{\"xCord\":22,\"yCord\":13,\"intialValue\":1},{\"xCord\":22,\"yCord\":14,\"intialValue\":2},{\"xCord\":22,\"yCord\":15,\"intialValue\":2},{\"xCord\":22,\"yCord\":16,\"intialValue\":1},{\"xCord\":22,\"yCord\":17,\"intialValue\":2},{\"xCord\":22,\"yCord\":18,\"intialValue\":2},{\"xCord\":22,\"yCord\":19,\"intialValue\":1},{\"xCord\":22,\"yCord\":20,\"intialValue\":1},{\"xCord\":22,\"yCord\":21,\"intialValue\":1},{\"xCord\":22,\"yCord\":22,\"intialValue\":2}]]"}]}' + --data '{"boards":[{"id":1,"title":"this is the board", + + + "cells":"}]}' echo diff --git a/scripts/metting_with_chris/create-boarrd.sh b/scripts/metting_with_chris/create-boarrd.sh new file mode 100644 index 0000000..3acf209 --- /dev/null +++ b/scripts/metting_with_chris/create-boarrd.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# curl --include --request POST https://protected-ridge-58465.herokuapp.com/boards \ + +curl --include --request POST http://localhost:4741/boards \ + --header "Authorization: Token token=BAhJIiU3NGZhYWEyMTc4NGU1OWVlMzFjNTRhNzE4YzY1M2YzNAY6BkVG--f5ff9e56f311c2231a35237caaa89cd643d7834a" \ + --data '{ + "board": { + "title": "A Secong Curl Board", + "cells": "test" + } + }' + +echo diff --git a/scripts/metting_with_chris/delete-board.sh b/scripts/metting_with_chris/delete-board.sh new file mode 100644 index 0000000..e1c85ae --- /dev/null +++ b/scripts/metting_with_chris/delete-board.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# curl --include --request POST https://protected-ridge-58465.herokuapp.com/boards \ + +curl --include --request DELETE http://localhost:4741/boards/129 \ + --header "Authorization: Token token=BAhJIiU3NGZhYWEyMTc4NGU1OWVlMzFjNTRhNzE4YzY1M2YzNAY6BkVG--f5ff9e56f311c2231a35237caaa89cd643d7834a" \ + + +echo + + +curl --include --request DELETE http://localhost:4741/boards/129 \ diff --git a/scripts/metting_with_chris/getBoard.sh b/scripts/metting_with_chris/getBoard.sh new file mode 100644 index 0000000..c5cf38d --- /dev/null +++ b/scripts/metting_with_chris/getBoard.sh @@ -0,0 +1,2 @@ +curl --include --request GET http://localhost:4741/boards/130 \ + --header "Authorization: Token token=BAhJIiU3NGZhYWEyMTc4NGU1OWVlMzFjNTRhNzE4YzY1M2YzNAY6BkVG--f5ff9e56f311c2231a35237caaa89cd643d7834a" \ diff --git a/scripts/metting_with_chris/getBoards.sh b/scripts/metting_with_chris/getBoards.sh new file mode 100644 index 0000000..01ad8d7 --- /dev/null +++ b/scripts/metting_with_chris/getBoards.sh @@ -0,0 +1,2 @@ +curl --include --request GET http://localhost:4741/list-boards \ + --header "Authorization: Token token=BAhJIiU3NGZhYWEyMTc4NGU1OWVlMzFjNTRhNzE4YzY1M2YzNAY6BkVG--f5ff9e56f311c2231a35237caaa89cd643d7834a" \ diff --git a/scripts/metting_with_chris/sign-in.sh b/scripts/metting_with_chris/sign-in.sh new file mode 100644 index 0000000..70b9269 --- /dev/null +++ b/scripts/metting_with_chris/sign-in.sh @@ -0,0 +1,10 @@ +curl --include --request POST http://localhost:4741/sign-in \ + --header "Content-Type: application/json" \ + --data '{ + "credentials": { + "email": "ShoopsObjectsSuck", + "password": "test" + } + }' + +echo diff --git a/scripts/metting_with_chris/sign-up.sh b/scripts/metting_with_chris/sign-up.sh new file mode 100644 index 0000000..ed1d4a9 --- /dev/null +++ b/scripts/metting_with_chris/sign-up.sh @@ -0,0 +1,11 @@ +curl --include --request POST http://localhost:4741/sign-up \ + --header "Content-Type: application/json" \ + --data '{ + "credentials": { + "email": "ShoopsObjectsSuck", + "password": "test", + "password": "test" + } + }' + +echo diff --git a/scripts/metting_with_chris/update-board.sh b/scripts/metting_with_chris/update-board.sh new file mode 100644 index 0000000..69e650f --- /dev/null +++ b/scripts/metting_with_chris/update-board.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# curl --include --request POST https://protected-ridge-58465.herokuapp.com/boards \ + +curl --include --request PATCH http://localhost:4741/boards/129 \ + --header "Authorization: Token token=BAhJIiU3NGZhYWEyMTc4NGU1OWVlMzFjNTRhNzE4YzY1M2YzNAY6BkVG--f5ff9e56f311c2231a35237caaa89cd643d7834a" \ + --data '{ + "boards": { + "title": "Updated Board", + "cells": "test" + } + }' + +echo + + +curl --include --request PATCH http://localhost:4741/boards/129 \ + --data '{ + "boards": { + "title": "Updated Board", + "cells": "test" + } + }' diff --git a/spec/models/board_spec.rb b/spec/models/board_spec.rb index 77f3fe8..67c35a0 100644 --- a/spec/models/board_spec.rb +++ b/spec/models/board_spec.rb @@ -1,5 +1,14 @@ require 'rails_helper' RSpec.describe Board, type: :model do - pending "add some examples to (or delete) #{__FILE__}" + describe 'model associations' do + def association + described_class.reflect_on_association(:user) + end + + it 'has one user' do + expect(association).to_not be_nil + expect(association.name).to eq(:user) + end + end end diff --git a/spec/requests/boards_spec.rb b/spec/requests/boards_spec.rb new file mode 100644 index 0000000..024c910 --- /dev/null +++ b/spec/requests/boards_spec.rb @@ -0,0 +1,135 @@ +require 'rails_helper' + +RSpec.describe 'Boards', type: :request do + + +# this here is the test user that will be used for authentication + def user_params + { + email: 'alice@example.com', + password: 'foobarbaz', + password_confirmation: 'foobarbaz' + } + end + + # THIS IS WHERE THE AUTHENTICATED TESTS START +# All Board actions require you to be signed in, so add this authenticaton logic + context 'when authenticated' do + def headers + { + 'HTTP_AUTHORIZATION' => "Token token=#{@token}" + } + end + # This sets the definition of a board for us + def board_params + # parameters for creating a board + { + title: 'New Board', + cells: 'TEST' + } + end + + # this creates the fake users AND a fake board using the POST action below + # this was killer b/c of the header + before(:each) do + post '/sign-up', params: { credentials: user_params } + post '/sign-in', params: { credentials: user_params } + + @token = JSON.parse(response.body)['user']['token'] + @user_id = JSON.parse(response.body)['user']['id'] + post '/boards', params: { boards: board_params }, headers: headers + end +# I couldn't figure out how to pass the header into this guy below so +# I created it above in the before each, then this selects the first for testing + def board + Board.first + end + # this is the list of boards used for testing + def boards + # returns a list of all boards + Board.all + end + + describe 'GET /list-boards' do + it 'lists all boards' do + # Make the request + get '/list-boards', headers: headers + # Expect the request to be a response + expect(response).to be_success + # Pull the response from server + boards_response = JSON.parse(response.body) + # check that the response matches the list of boards created above + expect(boards_response.length).to eq(boards.count) + # fcheck that the response matches what was fed into database + expect(boards_response['title']).to eq(board_params['title']) + end + end + + describe 'GET /boards/:id' do + it "shows the board" do + get "/boards/#{board.id}", headers: headers + + expect(response).to be_success + # Pull the response from server + board_response = JSON.parse(response.body) + + expect(board_response['title']).to eq(board_params['title']) + end + end + + describe 'DELETE /boards/:id' do + it "deletes a board" do + delete "/boards/#{board.id}", headers: headers + + expect(response).to be_success + expect(response.body).to be_empty + expect(board).to be_nil + end + end + + describe 'PATCH /boards/:id' do + # this creates the data we're gonna try to patch into the data base + def board_updated + {title:"ITS UPDATED"} + end + + # This tests the article with the patch + it "updates a board" do + patch "/boards/#{board.id}", params: {board: board_updated}, headers: headers + expect(response).to be_success + expect(board['title']).to eq(board_updated['title']) + + end + end + + describe 'POST/boards' do + def new_board + {title:"ITS NEW", + cells:"IMA here"} + end + + it "creates a new board" do + post "/boards", params: {board: new_board}, headers: headers + + expect(response).to be_success + + board_response = JSON.parse(response.body) + expect(board_response['title']).to eq(new_board['title']) + end + end + end + + context 'when NOT authenticated' do + + describe 'GET /list-boards' do + it 'is not sucessful' do + # Make the request + get '/list-boards' + # Expect the request to be a response + expect(response).to_not be_success + end + end + + + end +end diff --git a/spec/routing/boards_spec.rb b/spec/routing/boards_spec.rb new file mode 100644 index 0000000..df71a74 --- /dev/null +++ b/spec/routing/boards_spec.rb @@ -0,0 +1,40 @@ +require 'rails_helper' + +RSpec.describe 'routes for boards' do + it 'routes GET /list-boards to the boards#listboards action' do + # check that a get request to /boards routes to the index method + # of the boards controller + expect(get('/list-boards')).to route_to('boards#listboards') + end + + it 'routes GET /boards/:id to the boards#show action' do + expect(get('boards/1')).to route_to( + controller: 'boards', + action: 'show', + id: '1' + ) + end + + it 'routes DELETE /boards/:id to the boards#destroy action' do + expect(delete('boards/1')).to route_to( + controller: 'boards', + action: 'destroy', + id: '1' + ) + end + + it 'routes PATCH /boards/:id to the boards#update action' do + expect(patch('/boards/1')).to route_to( + controller: 'boards', + action: 'update', + id: '1' + ) + end + + it 'routes POST /boards to the boards#create action' do + expect(post('/boards')).to route_to( + controller: 'boards', + action: 'create' + ) + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 8f698be..655fcf7 100755 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -96,4 +96,5 @@ # as the one that triggered the failure. Kernel.srand config.seed =end + end