diff --git a/v1/Application.cfc b/v1/Application.cfc index 4f2dcc6..66e1d2b 100644 --- a/v1/Application.cfc +++ b/v1/Application.cfc @@ -57,7 +57,7 @@ //variables.framework.docs={}; variables.framework.docs.APIName="svc-api"; - variables.framework.docs.APIVersion="0.193"; /*$ git config --global --unset user.password*/ + variables.framework.docs.APIVersion="0.195"; /*$ git config --global --unset user.password*/ variables.framework.globalHeaders = structNew(); variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location"; diff --git a/v1/resources/instance.cfc b/v1/resources/instance.cfc index 2c335fa..714b056 100644 --- a/v1/resources/instance.cfc +++ b/v1/resources/instance.cfc @@ -284,7 +284,10 @@ left outer join contragent k on (c.contragent_id=k.contragent_id) where p.param_value= - AND r.svc_id=(select i.service_id from instance i where i.instance_uid=) + AND r.svc_id=(select i.service_id + from instance i + where i.instance_uid= + ) diff --git a/v1/resources/instance_ls.cfc b/v1/resources/instance_ls.cfc index 9d73248..cf72967 100644 --- a/v1/resources/instance_ls.cfc +++ b/v1/resources/instance_ls.cfc @@ -152,6 +152,8 @@ i.price v.svc v.code + v.resource_realm_type_id + e.updater_id u.login as updater_login u.shortname as updater_shortname @@ -228,6 +230,7 @@ from instance_operation o join (select instance_uid, max(dt_submit) as dt_submit from instance_operation group by 1 ) lastv on (o.instance_uid=lastv.instance_uid AND o.dt_submit=lastv.dt_submit) ) io on (e.instance_uid=io.instance_uid) + where s.specification_id= AND ( @@ -266,7 +269,8 @@ left outer join (select o.instance_operation_uid, o.instance_uid, o.operation, o.dt_submit, o.submit_result, o.dt_start, o.dt_finish, o.is_successful from instance_operation o join (select instance_uid, max(dt_submit) as dt_submit from instance_operation group by 1) lastv on (o.instance_uid=lastv.instance_uid AND o.dt_submit=lastv.dt_submit) ) io - on (e.instance_uid=io.instance_uid) + on (e.instance_uid=io.instance_uid) + where s.specification_id= diff --git a/v1/resources/instance_operation.cfc b/v1/resources/instance_operation.cfc index 90e1176..e3da44f 100644 --- a/v1/resources/instance_operation.cfc +++ b/v1/resources/instance_operation.cfc @@ -236,7 +236,67 @@ + + + + + + + + + select sop.svc_operation_cfs_param_id, sop.svc_operation_cfs_param, sop.unique_scope + from svc_operation_cfs_param sop + join instance_operation_cfs_param iop on (sop.svc_operation_cfs_param_id=iop.svc_operation_cfs_param_id) + where iop.instance_operation_uid = + + + select io.instance_uid + from instance_operation io + join instance_operation_cfs_param iop on (io.instance_operation_uid=iop.instance_operation_uid) + where iop.instance_operation_uid = + + + + + + + + SELECT p.param_value, sp.svc_operation_cfs_param, re.display_name + FROM instance_operation o + JOIN instance_operation_cfs_param p on (o.instance_operation_uid=p.instance_operation_uid) + --JOIN svc s on (e.service_id=s.svc_id) + -- svc_operation_cfs_param нужен, чтобы убрать совпадение параметра с самим собой, это не является ошибкой + -- остается непонятным, будет ли работать проверка между create/modify, у них разные id, а в параметрах инстанса одно и то же + -- возможно, следует сравнивать просто по имени + --join instance_operation_cfs_param op on (p.instance_operation_cfs_param_uid=op.instance_operation_cfs_param_uid) + join svc_operation_cfs_param sp on (p.svc_operation_cfs_param_id=sp.svc_operation_cfs_param_id) + + JOIN instance_operation_cfs_param p2 on (p.instance_operation_uid=p2.instance_operation_uid) -- sibling params + JOIN instance re on (p2.param_value=re.instance_uid::text /*не проверяем тип параметра - ссылка, не проверяем соответствие теп*/) -- referenced instance + -- down back + LEFT OUTER JOIN instance_cfs_param p3 on (re.instance_uid::text=p3.param_value /*добавить селективности*/) -- referencing params from sibling instance + LEFT OUTER JOIN instance_cfs_param p4 on (p3.instance_uid=p4.instance_uid AND sp.svc_operation_cfs_param=p4.param) -- same param names from sibling instance + WHERE p.param_value=p4.param_value + AND p.instance_operation_uid= + AND p.svc_operation_cfs_param_id= + AND p4.instance_uid <> + AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=p4.instance_uid order by version desc limit 1) IS NOT TRUE + + + + + + + + + + + + + + \ No newline at end of file diff --git a/v1/resources/instance_operation_run.cfc b/v1/resources/instance_operation_run.cfc index 9ddc516..da00019 100644 --- a/v1/resources/instance_operation_run.cfc +++ b/v1/resources/instance_operation_run.cfc @@ -88,9 +88,14 @@ - - - + + + + + + + + @@ -103,6 +108,9 @@ + + + diff --git a/v1/resources/instance_operation_validate.cfc b/v1/resources/instance_operation_validate.cfc new file mode 100644 index 0000000..f60cae2 --- /dev/null +++ b/v1/resources/instance_operation_validate.cfc @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + +