UNPKG

crmfetchkit

Version:

Library for Dynamics CRM that allows the execution of fetchxml-queries via JavaScript

1 lines 3.21 kB
var CrmRestKit=function(e,t,n){"use strict";function r(){if("undefined"!=typeof GetGlobalContext)return GetGlobalContext();if("undefined"!=typeof Xrm)return Xrm.Page.context;throw new Error("Context is not available.")}function a(){var t=null,a=e.location.protocol+"//"+e.location.host,o=r();return Xrm.Page.context.getClientUrl!==n?t=Xrm.Page.context.getClientUrl():o.isOutlookClient()&&!o.isOutlookOnline()?t=a:(t=o.getServerUrl(),t=t.replace(/^(http|https):\/\/([_a-zA-Z0-9\-\.]+)(:([0-9]{1,5}))?/,a),t=t.replace(/\/$/,"")),t}function o(){return a()+T}function i(e,t){var r=null;return e!==n&&null!==e&&(r={__metadata:{type:"Microsoft.Crm.Sdk.Data.Services.EntityReference"},Id:e},t!==n&&null!==t&&(r.LogicalName=t)),r}function u(e){return{__metadata:{type:"Microsoft.Crm.Sdk.Data.Services.OptionSetValue"},Value:e}}function c(e){return{__metadata:{type:"Microsoft.Crm.Sdk.Data.Services.Money"},Value:e}}function l(e){return new Date(parseInt(e.replace("/Date(","").replace(")/",""),10))}function s(e,t){var r={type:"GET",async:!0,contentType:"application/json; charset=utf-8",datatype:"json",beforeSend:function(e){e.setRequestHeader("Accept","application/json")}};return e=$.extend(r,e),e.async=t===n?!0:t,$.ajax(e)}function d(t,r,a,i,u,c){var l=c===n?!0:c,d=o(),f={url:d+"/"+r+"Set(guid'"+t+"')/$links/"+u,type:"POST",data:e.JSON.stringify({uri:d+"/"+i+"Set(guid'"+a+"')"})};return s(f,l)}function f(e,t,r,a,i){var u=i===n?!0:i,c=o(),l={url:c+"/"+t+"Set(guid'"+e+"')/$links/"+a+"(guid'"+r+"')",type:"POST",beforeSend:function(e){e.setRequestHeader("Accept","application/json"),e.setRequestHeader("X-HTTP-Method","DELETE")}};return s(l,u)}function p(e,t,r,a){var i=a===n?!0:a,u=e+"Set",c=o()+"/"+u+"(guid'"+t+"')?$select="+r.join(",");return s({url:c},i)}function y(e,t){return s({url:e},t)}function S(e,t,r,a,i){var u=i===n?!0:i;a=a?"&$filter="+encodeURIComponent(a):"";var c=e+"Set",l=o()+"/"+c+"?$select="+t.join(",")+"&$expand="+r+a;return s({url:l},u)}function v(e,t,r,a){var i=a===n?!0:a;r=r?"&$filter="+encodeURIComponent(r):"";var u=e+"Set",c=o()+"/"+u+"?$select="+t.join(",")+r;return s({url:c},i)}function g(e,t,n,r){var a=new $.Deferred,o=[];return v(e,t,n,r).then(function i(e){o=o.concat(e.d.results),e.d.__next?(y(e.d.__next,r).then(i,a.reject),a.notify(e)):a.resolve(o)},a.reject),a.promise()}function m(t,r,a){var i=a===n?!0:a,u=t+"Set",c=e.JSON.stringify(r),l=o()+"/"+u;return s({type:"POST",url:l,data:c},i)}function O(t,r,a,i){var u=i===n?!0:i,c=t+"Set",l=e.JSON.stringify(a),d=o()+"/"+c+"(guid'"+r+"')",f={type:"POST",url:d,data:l,beforeSend:function(e){e.setRequestHeader("Accept","application/json"),e.setRequestHeader("X-HTTP-Method","MERGE")}};return s(f,u)}function R(e,t,r){var a=r===n?!0:r,i=e+"Set",u=o()+"/"+i+"(guid'"+t+"')",c={type:"POST",url:u,beforeSend:function(e){e.setRequestHeader("Accept","application/json"),e.setRequestHeader("X-HTTP-Method","DELETE")}};return s(c,a)}var T="/XRMServices/2011/OrganizationData.svc",C="2.6.0";return{Version:C,Retrieve:p,ByQuery:v,ByQueryUrl:y,ByExpandQuery:S,ByQueryAll:g,Create:m,Update:O,Delete:R,Associate:d,Disassociate:f,EntityReferenceFactory:i,OptionSetValueFactory:u,MoneyValueFactory:c,ParseODataDate:l}}(window,document);