by Riyan Naffa Nusafara
Contents
Repository ini merupakan tempat untuk mengumpulkan final project dari Pelatihan Web Development KMTETI yang diselenggarakan oleh Divisi Workshop KMTETI. Project ini berfokus pada pengembangan website dari sisi backend. Project ini berfokus pada request handling pada 7 API endpoint dan koneksi ke database.
Project ini dibangun dengan bahasa Go sebagai bahasa pemrograman dan MongoDB sebagai database, lebih rincinya MongoDB Atlas sebagai remote database.
Koleksi ini merupakan bagian dari database book-store-dev yang khusus menyimpan data buku. Buku disimpan dalam bentuk document dengan field dan key:
{
"_id": ObjectID,
"title": String,
"author": String,
"year": Int32,
"stock": Int32,
"price": Decimal128,
}func BookHandler(w http.ResponseWriter, r *http.Request)Handler mengambil HTTP response writer sebagai output dari data yang diterima dan HTTP request sebagai data yang ingin disampaikan ke database. Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book.
func BookDisplayAll() ([]*model.BookDisplay, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book?action=display. Keluaran dari fungsi ini adalah slice dari dokumen buku-buku dengan field yang untuk ditampilkan dan error jika terjadi suatu kesalahan dalam koneksi ke database, encoding, maupun request.
func BookDetails(idReq *string) (*model.BookDetailed, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book?action=details&id=<idReq>. Fungsi ini mengambil variabel pointer string sebagai kata kunci untuk menemukan dokumen yang dimaksud. Keluaran dari fungsi ini adalah dokumen mendetail dari buku yang diminta dan sebuah error jika terjadi error.
func BookUpdate(req io.Reader) (*mongo.UpdateResult, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book?action=update. Fungsi ini menerima parameter berupa HTTP Body dengan isi sebuah dokumen JSON yang berisi ID, harga, dan stok yang ingin diubah. Kembalian dari fungsi ini adalah hasil update dokumen dan error jika terjadi error.
func BookAdd(req io.Reader) (*mongo.InsertOneResult, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book?action=add. Fungsi ini menerima parameter berupa HTTP Body dengan isi sebuah dokumen JSON yang berisi judul, pengarang, tahun terbit, stok, dan harga dari buku yang ingin ditambahkan. ID akan ditambahkan secara otomatis oleh program karena ID bersifat unik setiap dokumen. Keluaran fungsi ini adalah hasil memasukkan data dan sebuah error jika terjadi error.
func BookDelete(idReq *string) (*model.BookDeleteResponse, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/book?action=delete. Fungsi ini menerima parameter sebuah variabel pointer string yang menunjukkan ID dari buku yang ingin dihapus. Keluaran dari fungsi ini adalah respons penghapusan dokumen yang berisi ID dan judul buku yang telah berhasil dihapus dan sebuah error jika terjadi error.
Koleksi ini merupakan bagian dari database book-store-dev yang khusus menyimpan data pegawai. Data pegawai disimpan dalam bentuk document dengan field dan key:
{
"_id": ObjectID,
"name": String,
"nik": String,
"edu": String,
"date": {
"day": Int32,
"month": Int32,
"year": Int 32,
},
"type": String,
}func EmployeeHandler(w http.ResponseWriter, r *http.Request)Handler mengambil HTTP response writer sebagai output dari data yang diterima dan HTTP request sebagai data yang ingin disampaikan ke database. Fungsi ini dipanggil ketika terdapat request dari endpoint /api/employee.
func EmployeeDisplayAll() ([]*model.EmployeeDisplay, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/employee?action=display. Keluaran dari fungsi ini adalah slice dokumen pegawai-pegawai yang ada di database dan sebuah error jika terjadi error.
func EmployeeAdd(req io.Reader) (*mongo.InsertOneResult, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/employee?action=add. Fungsi ini mengambil parameter sebuah HTTP Body yang berisi data pegawai yang ingin dimasukkan ke dalam database dalam format JSON. Keluaran dari fungsi ini adalah response keberhasilan memasukkan dokumen dan sebuah error jika terjadi error.
func EmployeeDelete(idReq *string) (*model.EmployeeDeleteResponse, error)Fungsi ini dipanggil ketika terdapat request dari endpoint /api/employee?action=delete&id=<idReq>. Fungsi ini mengambil parameter sebuah pointer string ID dari seorang pegawai yang ingin dihapus dari database. Keluaran dari fungsi ini adalah response keberhasilan penghapusan dokumen dan sebuah error jika terjadi error.