Gofiber
  • Basic backend dengan Gofiber part 1
    • Pengenalan Gofiber
    • Instalasi Gofiber
    • Auto reload dengan air
    • Membaca semua data di struct dengan Gofiber
    • Membaca data spesifik di struct dengan Gofiber
    • Membuat data di struct dengan Gofiber
    • Mengupdate data di struct dengan Gofiber
    • Menghapus data di struct dengan Gofiber
    • Implementasi MVC di Gofiber
  • Basic backend dengan Gofiber part 2
    • Setting database menggunahkan gorm.io di Gofiber
    • Menambahkan query ke database di Gofiber
    • Membuat relasi dengan gorm di Gofiber
    • Membuat validasi dengan validator di Gofiber
    • Membuat CORS di Gofiber
    • Menghandle serangan XSS(Cross-Site Scripting) di Gofiber
    • Mengamankan header HTTP dengan helmet di Gofiber
    • Membuat middleware menggunahkan JWT(JSON Web Token) di Gofiber
    • Menambahkan query search di Gofiber
    • Menambahkan query sort di Gofiber
    • Membuat pagination di Gofiber
    • Membuat refresh token di Gofiber
    • Membuat local upload file di Gofiber
    • Membuat server upload dengan cloudinary di Gofiber
    • Membuat analisis code dengan GolangCI-Lint di Gofiber
Powered by GitBook
On this page
  1. Basic backend dengan Gofiber part 2

Menambahkan query sort di Gofiber

Langkah-langkah Menambahkan Fitur Sorting

  1. Update Model Product untuk Mendukung Sorting: Tambahkan parameter sort pada fungsi SelectAllProducts untuk mendukung pengurutan data.

    func SelectAllProducts(sort, name string) []*Product {
        var items []*Product
        name = "%" + name + "%"
        configs.DB.Preload("Category").Order(sort).Where("name LIKE ?", name).Find(&items)
        return items
    }
  2. Update Model Category untuk Mendukung Sorting: Tambahkan parameter sort pada fungsi SelectAllCategories untuk mendukung pengurutan data.

    func SelectAllCategories(sort, name string) []*Category {
    	var categories []*Category
    	name = "%" + name + "%"
    	configs.DB.Preload("Products", func(db *gorm.DB) *gorm.DB {
    		var items []*ApiProduct
    		return db.Model(&Product{}).Find(&items)
    	}).Order(sort).Where("name LIKE ?", name).Find(&categories)
    	return categories
    }
  3. Update Controller Product untuk Mendukung Sorting: Modifikasi fungsi GetAllProducts di src/controllers/ProductController.go untuk menangani parameter sorting.

    // src/controllers/ProductController.go
    
    package controllers
    
    import (
        "gofiber/src/models"
        "strings"
    
        "github.com/gofiber/fiber/v2"
    )
    
    func GetAllProducts(c *fiber.Ctx) error {
        sort := c.Query("sorting")
        if sort == "" {
            sort = "ASC"
        }
        sortby := c.Query("orderBy")
        if sortby == "" {
            sortby = "name"
        }
        sort = sortby + " " + strings.ToLower(sort)
        keyword := c.Query("search")
        products := models.SelectAllProducts(sort, keyword)
        return c.JSON(products)
    }
  4. Update Controller Category untuk Mendukung Sorting: Modifikasi fungsi GetAllCategories di src/controllers/CategoryController.go untuk menangani parameter sorting.

    // src/controllers/CategoryController.go
    
    package controllers
    
    import (
        "gofiber/src/models"
        "strings"
    
        "github.com/gofiber/fiber/v2"
    )
    
    func GetAllCategories(c *fiber.Ctx) error {
        sort := c.Query("sorting")
        if sort == "" {
            sort = "ASC"
        }
        sortby := c.Query("orderBy")
        if sortby == "" {
            sortby = "name"
        }
        sort = sortby + " " + strings.ToLower(sort)
        keyword := c.Query("search")
        categories := models.SelectAllCategories(sort, keyword)
        return c.JSON(categories)
    }

Penjelasan Langkah-langkah

  1. Update Model Product dan Category:

    • Modifikasi model Product dan Category untuk menambahkan fungsi pencarian dan sorting.

    • Fungsi SelectAllProducts dan SelectAllCategories menerima parameter sort dan name untuk mendukung pencarian dan pengurutan.

  2. Update Controller Product dan Category:

    • Di dalam controller, ambil parameter query sorting dan orderBy dari URL menggunakan c.Query.

    • Gabungkan parameter sorting dan orderBy untuk digunakan dalam query database.

    • Panggil fungsi pencarian dan sorting di model yang telah dimodifikasi dengan parameter yang diambil dari URL.

Dengan langkah-langkah ini, Anda telah mengimplementasikan fitur pencarian dan sorting pada produk dan kategori di aplikasi Fiber Anda. Hasil pencarian dan sorting akan menampilkan daftar produk atau kategori yang sesuai dengan kata kunci dan urutan yang diberikan.

PreviousMenambahkan query search di GofiberNextMembuat pagination di Gofiber

Last updated 1 year ago

GitHub - zakimaliki/basic_gofiber_part_1 at 2859a73148d2a50aa846e598629f7adce8c10f51GitHub
Logo