Skip to main content

Playing with Hooks in Gorm #GolangDev

Pixabay


Hello everyone, I would like to share some tricks in gorm, the Idea of this tricks is to execute a command or code statement in the middle of an ORM operation, if you ever know about trigger in the query language, then hooks is just kinda like that. Hooks could execute statement in some events such as: beforeCreate, beforeUpdate, afterCreate,  and afterUpdate. those event is similar as a trigger,  when the trigger is executed in DBMS layer, hooks are executed in the application layer.

In my real case, my current company has different convention of naming database column, so when I try to implement ORM, a lot of columns such as created_at, updated_at and deleted_at can't be generated automatically. also if you have a custom UUID you could pass the value UUID generator into hooks before the insert is executed. for more detail let's jump into code :



# Explanation

Above code containing model struct, and several methods from gorm to serve model, TableName method used to define table name if your structs name has different spelling, then next method is BeforeCreate, that is hooks method from gorm, this method have a standard convension to make it's work correctly, the structure is method need to implement model struct and passing gorm.DB reference param. 

The above example is used to passing the uuid value into the ID column, and passing timestamp value into createdate column. 

# The Advantages

if you are using hooks in order to passing value or executing statements before the query executed, your code is more centralized, readable and contextable. you don't need to pass all that value for each query statement you have define. 

Popular posts from this blog

OpenVPN Alternatif Solusi Menanggulangi Blokir dari KOMINFO

Sejak akhir juli 2022 kemaren indonesia di gegerkan dengan tindakan kominfo atas diblokirnya banyak platform digital karna tidak mendaftar PSE, terutama paypal dan plaform game (steam, epic game dll). keputusan ini semakin membuat netizen geram dikarenakan platform judi online malah disetujui untuk beroperasi karna sudah daftar PSE. Jujur menurut saya memang keputusan ini sejak awal saya dengar sudah mengada-ada karna sangat aneh memblokir semua platform digital yang jumlahnya tidak terhitung banyaknya dan hanya membolehkan akses platform yang sudah mendaftar yang jumlahnya hanya ratusan.  saya sebagai developer juga merasa aneh banget ini kebijakan apalagi platform development juga banyak yang di blacklist oleh kominfo seperti, github, gitlab, bitbucket, even website CDN pun di blacklist. astaga wkwkwk. anyway terlepas dari kebijakan konyol ini, saya mau berbagi tips cara agar tetep bisa mengakses semua platform tersebut tanpa ada halangan, yaitu dengan menggunakan VPN. banyak ban...

Install Laravel Menggunakan Composer dan Laravel Instant Builder | Learn and Practice

Composer adalah package manager php untuk menginstall library-library, kalo temen2 pernah memakai bahasa pemrograman java, pasti nggk asing mengenal library. contoh :  import java.io.*; laravel juga bisa di install melalui composer layaknya library, jadi setelah tau caranya install laravel via composer, sedikit banyak kalian akan faham gimana caranya install package. btw tutorial ini merujuk pada dokumentasi website laravel, so keep reading and go scroll. Mengenal Laravel Framework | Review NB: langkah-langkah di bawah menggunakan terminal linux Install dengan composer 1. Install Composer instalasi composer memiliki banyak perubahan di beberapa versi, dan dari website resminya pun menyarankan untuk tidak membuat tutorial cara installnya, karna bisa jadi untuk versi selanjutnya akan berbeda lagi cara installnya. jadi, install sesuai dengan apa yang ada di website resminya aja ya. hehe jika ada kendala silahkan koment di bawah y...

Laravel Library : Melihat Error Log Laravel Menggunakan Library Laravel Log Viewer

# Problem  Error di laravel sering terjadi pada saat proses developing berjalan, pada saat terjadi error laravel memiliki notif atau pemberitahuan error secara gui, jadi developer bisa mengerti lebih jelas untuk membenarkan error yang terjadi.  permasalahan yang seringkali terjadi pada pembuatan aplikasi berbasis laravel adalah saat website udah di upload ke server production dengan setting environment debug=false , maka saat terjadi error di suatu aksi tidak akan di munculkan errornya secara gui, apalagi yang mendapati error adalah user, jadi developer tidak akan tau ada error apabila user tidak melakukan laporan. nah untuk menyelesaikan masalah itu, kita dapat menggunakan error log viewer  yang di buat oleh   rap2hpoutre  , library ini berfungsi untuk mendata atau melist semua error yang terjadi saat aplikasi kita pada lingkungan production, jadi developer bisa memantau apabila terdapat error saat user menggunakan website kita.  penampa...