Skip to content
This repository was archived by the owner on Nov 9, 2022. It is now read-only.

convert xdmp:eval to xdmp:invoke-function #109

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion rest-api/ext/processmodel.xqy
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ function ext:put(
let $enable := if (map:get($params,"enable") = "true") then fn:true() else fn:false()
let $_ := xdmp:log("Enabled? : " || xs:string($enable))

let $input := xdmp:unquote(xdmp:quote($input))
let $modelid := wfi:install-and-convert($input,map:get($params,"name"),(map:get($params,"major"),"1")[1],(map:get($params,"minor"),"0")[1], $enable )

let $out := <ext:createResponse><ext:outcome>SUCCESS</ext:outcome><ext:modelId>{$modelid}</ext:modelId></ext:createResponse>
Expand Down
41 changes: 15 additions & 26 deletions src/app/models/lib-alerts.xqy
Original file line number Diff line number Diff line change
Expand Up @@ -21,42 +21,31 @@ declare function ss:add-alert($shortname as xs:string,$query as schema-element(c


declare function ss:do-create-config($shortname as xs:string) as xs:string {
xdmp:eval(
'xquery version "1.0-ml"; declare namespace my="http://marklogic.com/alerts"; ' ||
'import module namespace ah = "http://marklogic.com/alerts/alerts" at "/app/models/lib-alerts.xqy";' ||
'import module namespace alert="http://marklogic.com/xdmp/alert" at "/MarkLogic/alert.xqy";' ||
'declare variable $my:shortname as xs:string external;' ||
'ah:create-config($my:shortname)',
(xs:QName("my:shortname"),$shortname),
xdmp:invoke-function(
function(){
ss:create-config($shortname)
}
,
<options xmlns="xdmp:eval"><isolation>different-transaction</isolation></options>
)
};

declare function ss:do-create-rule($alert-name as xs:string,$query as cts:query,$options as element()*) {
xdmp:eval(
'xquery version "1.0-ml"; declare namespace my="http://marklogic.com/alerts"; ' ||
'import module namespace ah = "http://marklogic.com/alerts/alerts" at "/app/models/lib-alerts.xqy";' ||
'import module namespace alert="http://marklogic.com/xdmp/alert" at "/MarkLogic/alert.xqy";' ||
'declare variable $my:alert-name as xs:string external;' ||
'declare variable $my:query as cts:query external;' ||
'declare variable $my:options as element* external;' ||
'ah:create-rule($my:alert-name,$my:query,$my:options)',
(xs:QName("my:alert-name"),$alert-name,xs:QName("my:query"),$query,xs:QName("my:options"),$options),
xdmp:invoke-function(
function(){
ss:create-rule($alert-name, $query, $options)
}
,
<options xmlns="xdmp:eval"><isolation>different-transaction</isolation></options>
)
};

declare function ss:do-create-action($alert-name as xs:string,$alert-module as xs:string,$db as xs:unsignedLong,$options as element()*) {
xdmp:eval(
'xquery version "1.0-ml"; declare namespace my="http://marklogic.com/alerts"; ' ||
'import module namespace ah = "http://marklogic.com/alerts/alerts" at "/app/models/lib-alerts.xqy";' ||
'import module namespace alert="http://marklogic.com/xdmp/alert" at "/MarkLogic/alert.xqy";' ||
'declare variable $my:alert-name as xs:string external;' ||
'declare variable $my:alert-module as xs:string external;' ||
'declare variable $my:db as xs:unsignedLong external;' ||
'declare variable $my:options as element* external;' ||
'ah:create-action($my:alert-name,$my:alert-module,$my:db,$my:options)',
(xs:QName("my:alert-name"),$alert-name,xs:QName("my:alert-module"),$alert-module,xs:QName("my:db"),$db,xs:QName("my:options"),$options),
xdmp:invoke-function(
function(){
ss:create-action($alert-name, $alert-module, $db, $options)
}
,
<options xmlns="xdmp:eval"><isolation>different-transaction</isolation></options>
)
};
Expand Down
Loading