Programowanie JavaScript 08
Javascript
Design Pattern: Wrapper


Przyklady:
- import danych z:
- pliku CSV
- pliku XML
- bazy danych
- wydruk do:
- 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
- utworzyć prywatny gist
- dodać ”gwiazdke”
- edytować gist
- wypisać commity dla gist
- usunąć utworzony gist
npm initlub
npm install # wew. katalogu gdzie jest plik package.json