در این پروژه بسیار کوچک و ساده من تلاش می کنم برخی از ماکرو های مورد نیاز برای توسعه سریع یک پروژه با الیکسیر را در قالب بخش بندی های مختلف و دسترسی راحت آماده سازی کنم.
به عنوان مثال برای ساخت فانکشن های اولیه کار با بانک اطلاعاتی می تونید به این صورت اقدام کنید.
use MishkaDeveloperTools.DB.CRUD,
module: YOURSchema,
error_atom: YOUR_CUSTOM_ERROR_ATOM,
repo: YOURRepo
وقتی اطلاعات خود را در قطعه کد بالا قرار دادید حال می توانید به همین راحتی CRUD خود را داشته باشید:
def create(attrs) do
crud_add(attrs)
end
def create(attrs, allowed_fields) do
crud_add(attrs, allowed_fields)
end
def edit(attrs) do
crud_edit(attrs)
end
def edit(attrs, allowed_fields) do
crud_edit(attrs, allowed_fields)
end
def delete(id) do
crud_delete(id)
end
def show_by_id(id) do
crud_get_record(id)
end
def show_by_name(name) do
crud_get_by_field("name", name)
end
راستی اگر می خواین داکیومنت مربوط رو به فانکشن خودتون اضافه کنید به صورت مثال:
@doc delegate_to: {MishkaDeveloperTools.DB.CRUD, :crud_add, 1}
def create(attrs) do
crud_add(attrs)
end
اینجوری انجام بدید.
به صورت مثال فعلا فقط UUID در این ماکرو ها پشتیبانی می شود ولی به زودی امکان استفاده از integer و همینطور استرینگ نیز پشتیبانی می گردد. سعی من بر این هست که چند اسکریپت ساده مخصوصا برای ساخت پکیج داکر بسازم که در MishkaCms قابل استفاده باشد.
راستی می تونید behaviour
که نوشته شده استفاده کنید فقط کافیه بالای فایلتون
@behaviour MishkaDeveloperTools.DB.CRUD
قرار بدهید