Mishka Elixir Developer Tools ابزار های کوچک برای توسعه پروژه الیکسیر

در این پروژه بسیار کوچک و ساده من تلاش می کنم برخی از ماکرو های مورد نیاز برای توسعه سریع یک پروژه با الیکسیر را در قالب بخش بندی های مختلف و دسترسی راحت آماده سازی کنم.

به عنوان مثال برای ساخت فانکشن های اولیه کار با بانک اطلاعاتی می تونید به این صورت اقدام کنید.

  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

قرار بدهید

3 پسندیده