From 698320390e39de826c81137fe2493e3124c294d5 Mon Sep 17 00:00:00 2001 From: Matt Beanland Date: Thu, 11 Dec 2025 16:08:23 +1030 Subject: [PATCH] refactor to use diffo ActionHelper --- lib/access/action_helper.ex | 43 ------------------------------- lib/access/resources/cable.ex | 4 +-- lib/access/resources/card.ex | 4 +-- lib/access/resources/path.ex | 4 +-- lib/access/resources/shelf.ex | 4 +-- lib/access/services/dsl_access.ex | 5 ++-- 6 files changed, 11 insertions(+), 53 deletions(-) delete mode 100644 lib/access/action_helper.ex diff --git a/lib/access/action_helper.ex b/lib/access/action_helper.ex deleted file mode 100644 index 9e4697c..0000000 --- a/lib/access/action_helper.ex +++ /dev/null @@ -1,43 +0,0 @@ -# SPDX-FileCopyrightText: 2025 diffo_example contributors -# -# SPDX-License-Identifier: MIT - -defmodule DiffoExample.Access.ActionHelper do - @moduledoc """ - Diffo - TMF Service and Resource Management with a difference - - ActionHelper - helping with actions - """ - - alias Diffo.Provider.Instance.Specification - alias Diffo.Provider.Instance.Relationship - alias Diffo.Provider.Instance.Feature - alias Diffo.Provider.Instance.Characteristic - alias Diffo.Provider.Instance.Place - alias Diffo.Provider.Instance.Party - alias DiffoExample.Access - - @doc """ - build before_action helper, injects instance dsl configuration into the changeset - """ - def build_before(changeset) do - changeset - |> Specification.set_specified_by_argument() - |> Feature.set_features_argument() - |> Characteristic.set_characteristics_argument() - end - - @doc """ - build after_action helper, relates TMF entities to the new instance - """ - def build_after(changeset, result, get_by_id_method) do - with {:ok, result} <- Specification.relate_instance(result, changeset), - {:ok, result} <- Relationship.relate_instance(result, changeset), - {:ok, result} <- Feature.relate_instance(result, changeset), - {:ok, result} <- Characteristic.relate_instance(result, changeset), - {:ok, result} <- Place.relate_instance(result, changeset), - {:ok, result} <- Party.relate_instance(result, changeset), - {:ok, result} <- apply(Access, get_by_id_method, [result.id]), - do: {:ok, result} - end -end diff --git a/lib/access/resources/cable.ex b/lib/access/resources/cable.ex index 195193b..66058d7 100644 --- a/lib/access/resources/cable.ex +++ b/lib/access/resources/cable.ex @@ -12,11 +12,11 @@ defmodule DiffoExample.Access.Cable do alias Diffo.Provider.BaseInstance alias Diffo.Provider.Instance.Relationship alias Diffo.Provider.Instance.Characteristic + alias Diffo.Provider.Instance.ActionHelper alias Diffo.Provider.Assigner alias Diffo.Provider.Assignment alias DiffoExample.Access - alias DiffoExample.Access.ActionHelper use Ash.Resource, fragments: [BaseInstance], @@ -56,7 +56,7 @@ defmodule DiffoExample.Access.Cable do change before_action(fn changeset, _context -> ActionHelper.build_before(changeset) end) change after_action(fn changeset, result, _context -> - ActionHelper.build_after(changeset, result, :get_cable_by_id) + ActionHelper.build_after(changeset, result, Access, :get_cable_by_id) end) change load [:href] diff --git a/lib/access/resources/card.ex b/lib/access/resources/card.ex index 5f1aa75..5cfffb4 100644 --- a/lib/access/resources/card.ex +++ b/lib/access/resources/card.ex @@ -12,11 +12,11 @@ defmodule DiffoExample.Access.Card do alias Diffo.Provider.BaseInstance alias Diffo.Provider.Instance.Relationship alias Diffo.Provider.Instance.Characteristic + alias Diffo.Provider.Instance.ActionHelper alias Diffo.Provider.Assigner alias Diffo.Provider.Assignment alias DiffoExample.Access - alias DiffoExample.Access.ActionHelper use Ash.Resource, fragments: [BaseInstance], @@ -56,7 +56,7 @@ defmodule DiffoExample.Access.Card do change before_action(fn changeset, _context -> ActionHelper.build_before(changeset) end) change after_action(fn changeset, result, _context -> - ActionHelper.build_after(changeset, result, :get_card_by_id) + ActionHelper.build_after(changeset, result, Access, :get_card_by_id) end) change load [:href] diff --git a/lib/access/resources/path.ex b/lib/access/resources/path.ex index 2b9f5ae..5418148 100644 --- a/lib/access/resources/path.ex +++ b/lib/access/resources/path.ex @@ -12,9 +12,9 @@ defmodule DiffoExample.Access.Path do alias Diffo.Provider.BaseInstance alias Diffo.Provider.Instance.Relationship alias Diffo.Provider.Instance.Characteristic + alias Diffo.Provider.Instance.ActionHelper alias DiffoExample.Access - alias DiffoExample.Access.ActionHelper use Ash.Resource, fragments: [BaseInstance], @@ -53,7 +53,7 @@ defmodule DiffoExample.Access.Path do change before_action(fn changeset, _context -> ActionHelper.build_before(changeset) end) change after_action(fn changeset, result, _context -> - ActionHelper.build_after(changeset, result, :get_path_by_id) + ActionHelper.build_after(changeset, result, Access, :get_path_by_id) end) change load [:href] diff --git a/lib/access/resources/shelf.ex b/lib/access/resources/shelf.ex index 365d37f..f325342 100644 --- a/lib/access/resources/shelf.ex +++ b/lib/access/resources/shelf.ex @@ -12,11 +12,11 @@ defmodule DiffoExample.Access.Shelf do alias Diffo.Provider.BaseInstance alias Diffo.Provider.Instance.Relationship alias Diffo.Provider.Instance.Characteristic + alias Diffo.Provider.Instance.ActionHelper alias Diffo.Provider.Assigner alias Diffo.Provider.Assignment alias DiffoExample.Access - alias DiffoExample.Access.ActionHelper use Ash.Resource, fragments: [BaseInstance], @@ -56,7 +56,7 @@ defmodule DiffoExample.Access.Shelf do change before_action(fn changeset, _context -> ActionHelper.build_before(changeset) end) change after_action(fn changeset, result, _context -> - ActionHelper.build_after(changeset, result, :get_shelf_by_id) + ActionHelper.build_after(changeset, result, Access, :get_shelf_by_id) end) change load [:href] diff --git a/lib/access/services/dsl_access.ex b/lib/access/services/dsl_access.ex index f10f40e..fc6a594 100644 --- a/lib/access/services/dsl_access.ex +++ b/lib/access/services/dsl_access.ex @@ -12,8 +12,9 @@ defmodule DiffoExample.Access.DslAccess do alias Diffo.Provider.BaseInstance alias Diffo.Provider.Instance.Characteristic alias Diffo.Provider.Instance.Place + alias Diffo.Provider.Instance.ActionHelper + alias DiffoExample.Access - alias DiffoExample.Access.ActionHelper use Ash.Resource, fragments: [BaseInstance], @@ -65,7 +66,7 @@ defmodule DiffoExample.Access.DslAccess do change before_action(fn changeset, _context -> ActionHelper.build_before(changeset) end) change after_action(fn changeset, result, _context -> - ActionHelper.build_after(changeset, result, :get_dsl_by_id) + ActionHelper.build_after(changeset, result, Access, :get_dsl_by_id) end) change load [:href]