- npm install
- npm install -g sequelize sequelize-cli (optional, if you have already installed it is not necessary)
- change password in config/config.json/"password": "Your_Posgre_Password",
- sequelize db:create
- sequelize db:migrate
- sequelize db:seed:all
- npm start
IF YOU WANT TEST IN POSTMAN, YOU CAN IMPORT FILE posmant.json
Menampilkan semua data yang ada dalam tabel content, output yang dihasilkan bertipe Array Of Object.
Contoh penerapan di frontend :
useEffect(() => {
const getContent = async () => {
const response = await axios.get(http://localhost:5000/content/data
);
setContent(response.data);
};
getContent();
}, []);
Menampilkan data berdasarkan id buku yang ada dalam tabel content, output yang dihasilkan bertipe Object.
Contoh penerapan di frontend :
const { id } = useParams();
useEffect(() => {
const getProductById = async () => {
const response = await axios.get(http://localhost:5000/products/1
);
setContent(response.data);
};
getProductById();
}, [id]);
Menampilkan semua data yang ada dalam tabel content berdasarkan hasil query pencarian dari frontend, output yang dihasilkan bertipe Array Of Object.
dapat menampung parameter :
- query : berisikan string hasil input pencarian contoh “pokemon”, bernilai default string kosong,
- page : angka untuk menentukan halaman dalam api optional use, bernilai default integer 0,
- limit : angka untuk menentukan jumlah data yang akan ditampilkan dalam api, bernilai default integer 10.
penerapan di frontend :
const [page, setPage] = useState([0]); const [limit, setLimit] = useState([10]); const [totalData, setTotalData] = useState([0]); const [keyword, setKeyword] = useState(""); const [datas, setData] = useState("");
useEffect(() => {
const searchContent = async () => {
const response = await axios.get(
http://localhost:5000/content/data/search?query=${keyword}&page=${page}&limit=${limit}
);
setData(response.data.result);
setTotalData(response.data.totalData);
};
searchContent();
}, [page, keyword, limit]);
Note :
http://localhost:5000/content/data/search?query=${keyword}
Membuat access token kalau data yang diinputkan sesuai dengan data yang terdapat dalam database tabel users, output yang dihasilkan bertipe Obejct.
harus memberikan data :
- usename
- password
penerapan di frontend :
const [username, setUsername] = useState(""); const [password, setPassword] = useState("");
const login = async () => {
await axios.post(http://localhost:5000/login
,{
username: username,
password: password
});
};
Memrubah jumlah page views pada buku tertentu berdasarkan id dalam tabel content.
harus memberikan data :
- id {bookId}
penerapan di frontend :
const [bookId, setBookId] = useState("");
useEffect(() => {
const incPageViews = async () => {
await axios.post(http://localhost:5000/pageviews
,{
id: bookId,
});
};
incPageViews();
}, []);
NOTE : untuk key/data yang wajib dikirimkan itu agak sensitif harus lowercase/camelcase {contoh di bagian : harus memberikan data}, kalau berbeda saat input maka tidak akan ada perubahan di database.
Membuat data content kedalam database tabel contents.
harus memberikan data :
- title,
- file,
- sinopsis,
- stories,
- genres,
- releaseDate,
penerapan di frontend :
const [title, setTitle] = useState(""); const [file, setFile] = useState(""); const [sinopsis, setSinopsis] = useState(""); const [stories, setStories] = useState(""); const [genres, setGenres] = useState(""); const [releaseDate, setReleaseDate] = useState("");
const createContent = async () => {
await axios.post(http://localhost:5000/content/create
,{
title: title,
file: file,
sinopsis: sinopsis,
stories: stories,
genres: genres,
releaseDate: releaseDate,
});
};
NOTE :untuk key/data yang wajib dikirimkan itu agak sensitif harus lowercase/camelcase {contoh di bagian : harus memberikan data}, kalau berbeda saat input maka data di database akan NULL.
Mengupdate data content yang ada di dalam database tabel contents.
data yang dapat di update :
- title,
- file,
- sinopsis,
- stories,
- genres,
- releaseDate,
penerapan di frontend :
const [title, setTitle] = useState(""); const [file, setFile] = useState(""); const [sinopsis, setSinopsis] = useState(""); const [stories, setStories] = useState(""); const [genres, setGenres] = useState(""); const [releaseDate, setReleaseDate] = useState("");
const updateContent = async () => {
await axios.patch(http://localhost:5000/content/update/1
,{
title: title,
file: file,
sinopsis: sinopsis,
stories: stories,
genres: genres,
releaseDate: releaseDate,
});
};
NOTE :untuk key/data yang akan dikirimkan itu agak sensitif harus lowercase/camelcase {contoh di bagian : data yang dapat di update}, kalau berbeda saat input maka tidak akan ada perubahan data di database.
Menghapus data content yang ada di dalam database tabel contents.
data yang dibutuhkan :
- id {bookId}
penerapan di frontend :
const [bookId, setBookId] = useState("");
const deleteContent = async () => {
await axios.delete(http://localhost:5000/products/${bookId}
);
};
Menampilkan semua data yang ada dalam tabel readinglists berdasarkan user login, output yang dihasilkan bertipe Array Of Object.
Contoh penerapan di frontend :
useEffect(() => {
const getReadingList = async () => {
const response = await axios.get(http://localhost:5000/readinglist
);
setContent(response.data);
};
getReadingList();
}, []);
Membuat data reading list kedalam database tabel readinglists.
harus memberikan data :
- title,
- poster,
- sinopsis,
- stories,
- genres,
- releaseDate,
- id {book id}
- username
- url
penerapan di frontend :
const [title, setTitle] = useState(""); const [poster, setPoster] = useState(""); const [sinopsis, setSinopsis] = useState(""); const [stories, setStories] = useState(""); const [releaseDate, setReleaseDate] = useState(""); const [genres, setGenres] = useState(""); const [bookId, setBookId] = useState(""); const [username, setUsername] = useState(""); const [url, setUrl] = useState("");
const createContent = async () => {
await axios.post(http://localhost:5000/readinglist/add
,{
id: bookId,
username: username,
title: title,
sinopsis: sinopsis,
poster: poster,
url: url,
stories: stories,
genres: genres,
releaseDate: releaseDate,
});
};
NOTE :untuk key/data yang wajib dikirimkan itu agak sensitif harus lowercase/camelcase {contoh di bagian : harus memberikan data}, kalau berbeda saat input maka data di database akan NULL.
Menghapus data reading list yang ada di dalam database tabel readinglists.
data yang dibutuhkan :
- id {bookId}
penerapan di frontend : const [bookId, setBookId] = useState("");
const deleteContent = async () => {
await axios.delete(http://localhost:5000/readinglist/remove
,{
bookid: bookId
});
};