diff --git a/v1/Application.cfc b/v1/Application.cfc index d45c963..18c645b 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.214"; /*$ git config --global --unset user.password*/ + variables.framework.docs.APIVersion="0.215"; /*$ git config --global --unset user.password*/ variables.framework.globalHeaders = structNew(); variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location"; @@ -283,8 +283,8 @@ //writeDump(result); abort; try { var idpUserData=deserializeJson(result); - arguments.requestArguments.companyUid=idpUserData.userInfo.companyId;//GUID! - arguments.requestArguments.usrUid=idpUserData.userInfo.contactId;//userId; //GUID! + "arguments.requestArguments.companyUid"=idpUserData.userInfo.companyId;//GUID! + "arguments.requestArguments.usrUid"=idpUserData.userInfo.contactId;//userId; //GUID! var usrCustomerInfo=getUsrCustomerInfo(idpUserData.userInfo.contactId, idpUserData.userInfo.companyId); } catch (e) { @@ -298,13 +298,13 @@ if (lCase(arguments.cfc) EQ 'notification_ls') { //*** костыль: для нотификаций можно адресоваться к пользователю без контракта if (structIsEmpty(usrCustomerInfo)) { - arguments.requestArguments.usrId=-1; //Integer! - arguments.requestArguments.contragentId=-1; //Integer - arguments.requestArguments.contractId=-1; //Integer - arguments.requestArguments.specificationId=-1; //Integer - arguments.requestArguments.isImpersonated=false; - arguments.requestArguments.clientID=""; - arguments.requestArguments.login=""; + "arguments.requestArguments.usrId"=-1; //Integer! + "arguments.requestArguments.contragentId"=-1; //Integer + "arguments.requestArguments.contractId"=-1; //Integer + "arguments.requestArguments.specificationId"=-1; //Integer + "arguments.requestArguments.isImpersonated"=false; + "arguments.requestArguments.clientID"=""; + "arguments.requestArguments.login"=""; return true; } @@ -312,27 +312,27 @@ if (structIsEmpty(usrCustomerInfo)) return representationOf("Cannot find default specification for current user #result#").withStatus(422); //это создает довольно много лишних движений при отладке - arguments.requestArguments.usrId=usrCustomerInfo.usrId; //Integer! - arguments.requestArguments.contragentId=usrCustomerInfo.contragentId; //Integer - arguments.requestArguments.contractId=usrCustomerInfo.contractId; //Integer - arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //Integer + "arguments.requestArguments.usrId"=usrCustomerInfo.usrId; //Integer + "arguments.requestArguments.contragentId"=usrCustomerInfo.contragentId; //Integer + "arguments.requestArguments.contractId"=usrCustomerInfo.contractId; //Integer + "arguments.requestArguments.specificationId"=usrCustomerInfo.specificationId; //Integer try { - arguments.requestArguments.isImpersonated=idpUserData.impersonation.is_impersonated; + "arguments.requestArguments.isImpersonated"=idpUserData.impersonation.is_impersonated; } catch (e) { - arguments.requestArguments.isImpersonated=false; // так себе решение, надо было бы NULL + "arguments.requestArguments.isImpersonated"=false; // так себе решение, надо было бы NULL } try { - arguments.requestArguments.clientID=idpUserData.userInfo.clientID; + "arguments.requestArguments.clientID"=idpUserData.userInfo.clientID; } catch (e) { - arguments.requestArguments.clientID=""; + "arguments.requestArguments.clientID"=""; } try { - arguments.requestArguments.login=idpUserData.userInfo.login; + "arguments.requestArguments.login"=idpUserData.userInfo.login; } catch (e) { - arguments.requestArguments.login=""; + "arguments.requestArguments.login"=""; } return true; @@ -423,6 +423,10 @@ + @@ -443,20 +447,37 @@ select z.contragent_id, c.contract_id, s.specification_id from contragent z - left outer join contract c on (z.contragent_id=c.contragent_id) - left outer join specification s on (c.contract_id=s.contract_id) + join contract c on (z.contragent_id=c.contragent_id) + join specification s on (c.contract_id=s.contract_id) where z.external_uid= order by s.specification_id desc limit 1; + - + + + select z.contragent_id + from contragent z + where z.external_uid= + + + + + + + select z.contragent_id, c.contract_id + from contragent z + join contract c on (z.contragent_id=c.contragent_id) + where z.external_uid= + + + + + + - - - - - + select u.usr_id, u.contragent_id, k.contragent_id as c_contragent_id from usr u @@ -464,6 +485,7 @@ where u.idp_usr_uid= limit 1; + diff --git a/v1/resources/user.cfc b/v1/resources/user.cfc index 9b73695..30140de 100644 --- a/v1/resources/user.cfc +++ b/v1/resources/user.cfc @@ -36,6 +36,7 @@ c.contract_id + c.contragent_id @@ -68,6 +69,7 @@ +