Giter VIP home page Giter VIP logo

persist-the-gist's Introduction

persist-the-gist

Note

This is the main branch. This branch contains the project using GraphQL. For REST, switch to the rest-api branch

Description

This application consists of a GraphQL API that exposes endpoints for retrieving gists by user, a sepcifc gist by Id and to post/delete gists to a favorite table in Postgres.

Status

  • API is incomplete (files datatype is not correct)
  • Library is complete
  • Database complete
  • Frontend incomplete

Instructions to run locally

  1. Make sure you have postgres install locally and running.
  2. Using psql or a tool like PgAdmin, run the following command: note: files datatype is incorrect for now
    CREATE TABLE favorites(
        ID serial PRIMARY KEY,
        created_at VARCHAR(255),
        updated_at VARCHAR(255),
        description VARCHAR(255),
        files VARCHAR(255)
    );
    
  3. Navigate to server directory and run npm install
  4. Run node index.js

Instruction to test via GraphiQL (frontend incomplete)

  1. Curl the Github Gist API to get a specific Gist that we can use as a favorite, example:
  curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/gists/6cbb59919d4730781d19a6cbf2fa3611 | jq .
  1. Navigate to http://localhost:4000/api in your browser and verify a get retrieves no data:
  {
    favorite{
      description,
      created_at,
      id,
      files
    }
  }
  1. To add a favorite gist to our db, try this mutation:
mutation {
  addFavorite(
    id: "bghjkmn",
    created_at: "2020/01/20",
    description: "graphql test description",
    files: "stringified json obj"
  )
  {html_url, id}
}
  1. Retry the favorite query to verify the value comes back as expected
  2. Remove the gist from our favorites by using the deleteFavorite mutation:
mutation {
  deleteFavorite(id: 2){
    id, created_at, description, files
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.