summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-01-24 09:30:04 +0100
committernsensfel <SpamShield0@noot-noot.org>2019-01-24 09:30:04 +0100
commit04212005d8f4e078548738256add0f6c12138946 (patch)
tree4a55d752d33e1d99a4134778c0e6da0dc28456b3 /src/shared/struct/shr_query.erl
parent41f0db023cb6c1a609762b9679b3677143b3840f (diff)
Woops, forgot that file.
Diffstat (limited to 'src/shared/struct/shr_query.erl')
-rw-r--r--src/shared/struct/shr_query.erl55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/shared/struct/shr_query.erl b/src/shared/struct/shr_query.erl
new file mode 100644
index 0000000..44d3222
--- /dev/null
+++ b/src/shared/struct/shr_query.erl
@@ -0,0 +1,55 @@
+-module(shr_query).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-include("../../../include/yaws_api.hrl").
+
+-record
+(
+ query,
+ {
+ ip :: binary(),
+ params :: map:map(binary(), any())
+ }
+).
+
+-opaque type() :: #query{}.
+
+-export_type([type/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ new/1,
+ get_ip/1,
+ get_params/1
+ ]
+).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (#arg{}) -> type().
+new (YawsArg) ->
+ {IP, _} = YawsArg#arg.client_ip_port,
+
+ #query
+ {
+ ip = IP,
+ params = jiffy:decode(YawsArg#arg.clidata, [return_maps])
+ }.
+
+-spec get_ip (type()) -> binary().
+get_ip (Query) -> Query#query.ip.
+
+-spec get_params (type()) -> map:map(binary(), any()).
+get_params (Query) -> Query#query.params.