Christian Grün schreef op 21.02.2018 13:23:
Hi Rob,
What do you mean by »activating« functions? Do you want to invoke
all of the returned functions in a loop?
Best,
Christian
<r.stap...@lijbrandt.nl> schrieb am Mi., 21. Feb. 2018, 11:07:
Christian Grün schreef op 19.02.2018 12:14:
Hi Rob,
Glad to have you back! I have revised the inspect:functions
function;
from now on, it also returns updating functions [1].
Best,
Christian
[1] http://files.basex.org/releases/latest/
On Sat, Feb 17, 2018 at 3:22 PM, Rob Stapper
<r.stap...@lijbrandt.nl>
wrote:
Hi Christian,
After a period of focussing on Angular I’m back at to BaseX
;-).
I found that the inspect:functions function does not return
updating
functions. Is that by design?
I would like to be able to use the inspect:functions function for
triggering
my update function on the server side, which of course are
updating
functions
TIA for you reply,
Cheers,
Rob Stapper
Hi Christian,
one remark: the as a result of a inspect:functions() returned
updating
functions can only be activated when MIXUPDATES option is set to
true.
This is however a workaround.
Seems like a generic issue for this kind of %processing functions.
Buiding two variants for each situation, %updating and
non-%updating,
for these kind of %processing functions doesn't feel like the
optimal
solution. Maybe something to put on the agenda (just a thought)
Best,
Rob
Christian,
this is my actual dispatcher code.
declare
%rest:path("/DB")
%rest:POST("{$specifications}")
%input:json("format=xquery")
%output:method("adaptive")
%output:indent("no")
%updating function _:dispatch
( $specifications as array(*)
)
{
_:response( update:apply( function( $requester as
xs:string
, $objectType as
xs:string
, $transaction as
xs:string
, $specifications as array(*)
)
{ inspect:functions()[
namespace-uri-from-QName( function-name(.)) = $objectType
and
local-name-from-QName( function-name(.)) = $transaction
](
$specifications)
}
, $specifications
)
)
} ;
I want a flexible client-server configuration for prototyping.
Performance is not an issue here.
This is what I ended up with. Pretty creative. isn't it?
So no loop, but a filter.
Hope this gives you any insight in my madness ;-)
Rob