PROGRAMOWANIE JAVASCRIPT

Programowanie JavaScript 08

Javascript

Design Pattern: Wrapper

wrapper

wrapper

Przyklady:

  • import danych z:
    • pliku CSV
    • pliku XML
    • bazy danych
  • wydruk do:
    • PDF
    • CSV
    • drukarki
  • zapis danych do:
    • pliku
    • bazy danych
    • serwera FTP

Cwiczenia

  • wrapper powinien:
    • uzywac axios lub github-api lub jakikolwiek inny mechanizmy wspierajacy komunikacje z protokolem HTTPS
    • miec medode, ktora czyta gist (getter; na podstawie gistid)
    • dla chetnych wiecej integracji
      • konstruktor powinien miec mozliwosc przekazania GITHUB_TOKEN
      • miec mozliwosc ustalenia tokenu (setter)
      • miec metode, ktora tworzy gist

Sample

const axios = require('axios');
const GitHub = require('github-api');

class GithHubWrapper {
  constructor(token) {
    this.token = token
  }

  client(token = this.token) {
    this.client = axios.create({
      baseURL: 'https://api.github.com/',
      timeout: 1000,
      headers: {'X-Custom-Header': token}
    });
  }

  githubApi() {
    return new GitHub();
  }

  axios() {
    return axios.create({
      baseURL: 'https://api.example.com'
    });
  }

  set token(newToken) {
    this.token = newToken
  }

  createGist(title, comment, body) {
    client().post(....)
  }

  getGist(gistId) {
    return client().get(`/gist/${gistId}`)
  }
}

Sample no 2

const axios = require('axios');
const GitHub = require('github-api');

class GithHubWrapper {
  constructor(token) {
    this.token = token
  }
}

let ghWrapper = new GithHubWrapper('TOKEN_GITHUB')
console.log(ghWrapper)
ghWrapper.token = "NEW_GITHUB_TOKEN"
ghWrapper.createGist("TITLE", "DESCRIPTION", ["FILE1", "FILE2"])
ghWrapper.getGist("GISTIT")

GitHub

wprowadzenie

API

npm init

lub

sample project

npm install # wew. katalogu gdzie jest plik package.json