Notable changes include moving data-related code ("models") from web/models/ to lib/rojak_api/data/. Selain itu, kita juga memisahkan tiap-tiap model menjadi:
schema yang merupakan deklarasi Ecto.Schema
query yang essentially merupakan helper/service untuk melakukan query ke database.
Motivasi dari refactor ini adalah keynote Chris McCord (19:38-21:51) tentang update pada Phoenix 1.3 (kita sedang pakai 1.2.1) yang akan menghapus konsep "models" bawaan Rails dan menjadikannya lebih Elixir-ish dengan penamaan module sesuai direktori (dan responsibility) beserta beberapa alasan lainnya. Update ini harusnya bisa memudahkan seandainya kita akan update ke versi 1.3, dan menjadikan codebase kita overall lebih clear (web/ hanya berisi kode yang berhubungan dengan web interface, ga ada data).
Satu perubahan kecil lagi: dummy index module dipindah dari / ke /v1 dan di-namespace ke V1. Biar tetep keliatan aja di api.rojak.id/v1 karena api.rojak.id/ udah buat dokumentasi 😅 Jadinya sekalian ngebump version ke 0.2.2.
This PR is a refactoring of
rojak-api
's code.Notable changes include moving data-related code ("models") from
web/models/
tolib/rojak_api/data/
. Selain itu, kita juga memisahkan tiap-tiap model menjadi:schema
yang merupakan deklarasiEcto.Schema
query
yang essentially merupakan helper/service untuk melakukan query ke database.Motivasi dari refactor ini adalah keynote Chris McCord (19:38-21:51) tentang update pada Phoenix 1.3 (kita sedang pakai 1.2.1) yang akan menghapus konsep "models" bawaan Rails dan menjadikannya lebih Elixir-ish dengan penamaan module sesuai direktori (dan responsibility) beserta beberapa alasan lainnya. Update ini harusnya bisa memudahkan seandainya kita akan update ke versi 1.3, dan menjadikan codebase kita overall lebih clear (
web/
hanya berisi kode yang berhubungan dengan web interface, ga ada data).Satu perubahan kecil lagi: dummy
index
module dipindah dari/
ke/v1
dan di-namespace keV1
. Biar tetep keliatan aja diapi.rojak.id/v1
karenaapi.rojak.id/
udah buat dokumentasi 😅 Jadinya sekalian ngebump version ke 0.2.2.All integration tests are still passing.