summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-06-06 15:54:18 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-06-06 15:54:18 +0200
commitee9c2ac044cc77b80f30420c8f0788cad4281084 (patch)
tree6ce9c45b6c0f0c556839b6f462f84eab06e26594 /src/shared/struct/sh_db_item.erl
parent97f7511e61cebae3676a83aa9c0dc2efb15d8d8c (diff)
Figuring out how to organize the src folder(s)...
Diffstat (limited to 'src/shared/struct/sh_db_item.erl')
-rw-r--r--src/shared/struct/sh_db_item.erl70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/shared/struct/sh_db_item.erl b/src/shared/struct/sh_db_item.erl
new file mode 100644
index 0000000..e499634
--- /dev/null
+++ b/src/shared/struct/sh_db_item.erl
@@ -0,0 +1,70 @@
+-module(sh_db_item).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-include("../include/db_item.hrl").
+
+-type type() :: db_item().
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export_type([type/0]).
+
+-export
+(
+ [
+ new/3,
+
+ get_id/1,
+ get_permission/1,
+ get_value/1,
+
+ set_permission/2,
+ set_value/2,
+
+ get_id_field/0,
+ get_record_info/0,
+ get_record_name/0
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (any(), db_user:permission(), any()) -> type().
+new (ID, Permission, Value) ->
+ #db_item
+ {
+ id = ID,
+ perm = Permission,
+ val = Value
+ }.
+
+-spec get_id (type()) -> any().
+get_id (#db_item { id = Result }) -> Result.
+
+-spec get_permission (type()) -> db_user:permission().
+get_permission (#db_item { perm = Result }) -> Result.
+
+-spec get_value (type()) -> any().
+get_value (#db_item { val = Result }) -> Result.
+
+-spec set_permission (db_user:permission(), type()) -> type().
+set_permission (Perm, Item) -> Item#db_item{ perm = Perm }.
+
+-spec set_value (any(), type()) -> type().
+set_value (Value, Item) -> Item#db_item{ val = Value }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #db_item.id.
+
+get_record_info () -> record_info(fields, db_item).
+
+get_record_name () -> db_item.
+