sp-jello
Version:
REST Api library for SharePoint
1 lines • 14 kB
JavaScript
var Jello=function(){return{}}();Jello.Constants=function(){var e={Template:{GenericList:100,DocumentLibrary:101,Survey:102,Links:103,Announcements:104,Contacts:105,Events:106,Tasks:107,DiscussionBoard:108,PictureLibrary:109}},t={Template:{TeamSite:0,BlankSite:1}},n={English:1033,Dutch:1043};return{List:e,Web:t,Language:n}}(),Jello.Files=function(){var e=function(){var e=null,t=function(){var t=$.Deferred();return e&&e.expiresOn>new Date?t.resolve(e):($.ajax({type:"POST",url:siteUrl+"/_api/contextinfo",headers:{accept:"application/json;odata=verbose"}}).done(function(n){var r=(new Date).getTime();e=n.d.GetContextWebInformation,e.expiresOn=r+1e3*n.d.GetContextWebInformation.FormDigestTimeoutSeconds-6e4,t.resolve(e.FormDigestValue)}).fail(function(e){console.log("Error fetching Request Digest. Some parts won't work."),t.reject(e)}),t.promise())};return{GetRequestDigest:t}}(),t=function(t){return $.Deferred(function(n){$.when(e.GetRequestDigest()).then(function(e){var r=new SP.RequestExecutor(t.context),o={url:"_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(t.FileUrl.replace(/'/g,"''"))+"')/checkOutType",method:"GET",headers:{Accept:"application/json; odata=verbose"},success:function(o){if(o=JSON.parse(o.body),0===o.d.CheckOutType)n.resolve(o);else{var i={url:"_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(t.FileUrl.replace(/'/g,"''"))+"')/CheckOut()",method:"POST",headers:{Accept:"application/json; odata=verbose","X-RequestDigest":e},contentType:"application/json;odata=verbose",success:function(e){n.resolve(e)},error:function(e){n.reject(e)}};r.executeAsync(i)}},error:function(e){n.reject(e)}};r.executeAsync(o)})})},n=function(t){return $.Deferred(function(n){$.when(e.GetRequestDigest()).then(function(e){t.Comments=t.Comments?t.Comments:"Auto check-in";var r=new SP.RequestExecutor(t.context),o={url:"_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(t.FileUrl.replace(/'/g,"''"))+"')/CheckIn(comment='"+t.Comments+"', checkintype=0)",method:"POST",headers:{Accept:"application/json; odata=verbose","X-RequestDigest":e},contentType:"application/json;odata=verbose",success:function(e){n.resolve(e)},error:function(e){n.reject(e)}};r.executeAsync(o)})})},r=function(e,t){return $.Deferred(function(n){var r=new SP.RequestExecutor(e),o={url:t,method:"GET",binaryStringResponseBody:!0,success:function(e){n.resolve(e.body)},error:function(e){n.reject(JSON.stringify(e))}};r.executeAsync(o)})},o=function(t,n,r,o,i){return $.Deferred(function(a){$.when(e.GetRequestDigest()).done(function(e){i=i?i:"false";var s=new SP.RequestExecutor(t),c={url:"_api/web/GetFolderByServerRelativeUrl('"+encodeURIComponent(n.replace(/'/g,"''"))+"')/Files/Add(url='"+r+"',overwrite="+i+")",method:"POST",headers:{Accept:"application/json; odata=verbose","X-RequestDigest":e},contentType:"application/json;odata=verbose",binaryStringRequestBody:!0,body:o,success:function(e){a.resolve(e)},error:function(e){a.reject(o)}};s.executeAsync(c)})})},i=function(t){return $.Deferred(function(n){$.when(e.GetRequestDigest()).done(function(e){t.DestLibraryRelativePath=t.DestLibraryRelativePath.replace(/'/g,"''"),t.DestFileName=t.DestFileName.replace(/'/g,"''");var r=_spPageContextInfo.webAbsoluteUrl+"/_api/web/lists/GetByTitle('"+t.SrcLibraryName+"')/GetItemById('"+t.SrcItemId+"')/File/copyTo(strNewUrl = '"+encodeURIComponent(t.DestLibraryRelativePath+"/"+t.DestFileName)+"',bOverWrite = "+t.boolReplace+")";$.ajax({cache:!1,url:r,type:"POST",headers:{accept:"application/json;odata=verbose","X-RequestDigest":e,"content-Type":"application/json;odata=verbose"},success:function(e){n.resolve(e)},error:function(e){n.reject(e)}})})})},a=function(t){return $.Deferred(function(n){$.when(e.GetRequestDigest(),RC.FileService.CheckOutFile(t)).done(function(e){var r=_spPageContextInfo.webAbsoluteUrl+"/_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(t.FileUrl.replace(/'/g,"''"))+"')/ListItemAllFields";$.ajax({url:r,type:"PATCH",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":e,"X-Http-Method":"PATCH","If-Match":"*"},data:t.UpdateData,success:function(e){var r=JSON.parse(t.UpdateData);if(r.FileLeafRef){var o=t.FileUrl.split("/");o[o.length-1]=r.FileLeafRef,t.FileUrl=o.join("/")}$.when(RC.FileService.CheckInFile(t)).done(function(e){n.resolve(e)}).fail(function(e){n.reject(e)})},error:function(e){n.reject(e)}})}).fail(function(e){n.reject(e)})})},s=function(e){return $.Deferred(function(t){$.ajax({url:_spPageContextInfo.webAbsoluteUrl+"/_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(e.FileUrl.replace(/'/g,"''"))+"')/approve(comment='')",type:"Post",headers:{Accept:"application/json;odata=verbose","Content-Type":"application/json;odata=verbose","X-RequestDigest":$("#__REQUESTDIGEST").val(),"If-Match":"*"},success:function(e){t.resolve(e)},error:function(e){t.reject(e)}})})},c=function(e){return $.Deferred(function(t){$.ajax({cache:!1,url:_spPageContextInfo.webAbsoluteUrl+"/_api/web/GetFileByServerRelativeUrl('"+encodeURIComponent(e.FileUrl.replace(/'/g,"''"))+"')/ListItemAllFields?"+e.ODataQuery,headers:{Accept:"application/json; odata=verbose","X-RequestDigest":$("#__REQUESTDIGEST").val()},type:"GET",success:function(e){t.resolve({isExists:!0,data:e.d})},error:function(e){t.resolve({isExists:!1,data:null})}})})};return{ReadFile:r,UploadFile:o,CheckOutFile:t,CheckInFile:n,CopyFile:i,UpdateFileMetadata:a,ApproveFile:s,DoesFileExist:c}},Jello.List=function(e){var t=function(){var e=null,t=function(){var t=$.Deferred();return e&&e.expiresOn>new Date?t.resolve(e):($.ajax({type:"POST",url:n+"/_api/contextinfo",headers:{accept:"application/json;odata=verbose"}}).done(function(n){var r=(new Date).getTime();e=n.d.GetContextWebInformation,e.expiresOn=r+1e3*n.d.GetContextWebInformation.FormDigestTimeoutSeconds-6e4,t.resolve(e.FormDigestValue)}).fail(function(e){console.log("Error fetching Request Digest. Some parts won't work."),t.reject(e)}),t.promise())};return{GetRequestDigest:t}}(),n=e.site,r=function(e){var r=$.Deferred();return t.GetRequestDigest().then(function(t){$.ajax({url:n+"/_api/web/lists",type:"POST",headers:{accept:"application/json;odata=verbose","content-type":"application/json;odata=verbose","X-RequestDigest":t},data:JSON.stringify({__metadata:{type:"SP.List"},AllowContentTypes:e.AllowContentTypes,BaseTemplate:e.BaseTemplate,ContentTypesEnabled:e.ContentTypesEnabled,Description:e.Description,Title:e.Title})}).done(function(e){r.resolve(e)}).fail(function(e){r.reject(e)})},function(e){r.reject(e)}),r.promise()};return{add:r}},Jello.ListItems=function(e){var t=function(){var e=null,t=function(){var t=$.Deferred();return e&&e.expiresOn>new Date?t.resolve(e):($.ajax({type:"POST",url:r+"/_api/contextinfo",headers:{accept:"application/json;odata=verbose"}}).done(function(n){var r=(new Date).getTime();e=n.d.GetContextWebInformation,e.expiresOn=r+1e3*n.d.GetContextWebInformation.FormDigestTimeoutSeconds-6e4,t.resolve(e.FormDigestValue)}).fail(function(e){console.log("Error fetching Request Digest. Some parts won't work."),t.reject(e)}),t.promise())};return{GetRequestDigest:t}}(),n={filter:null,expand:null,select:null,orderBy:null},r=e.site,o=e.list,i=e.contentType,a=function(e){var t=$.Deferred(),i="";return n.select||n.filter||n.expand||n.orderBy?(n.expand&&(i=i.length>0?i+"&"+n.expand:i+"?"+n.expand),n.select&&(i=i.length>0?i+"&"+n.select:i+"?"+n.select),n.filter&&(i=i.length>0?i+"&"+n.filter:i+"?"+n.filter),n.orderBy&&(i=i.length>0?i+"&"+n.orderBy:i+"?"+n.orderBy),e&&(i=i.length>0?i+"&$top="+e:i+"?$top="+e),n={filter:null,expand:null,select:null,orderBy:null}):i=e?"?$top="+e:"",url=r+"/_api/web/lists/getbytitle('"+o+"')/items"+i,$.ajax({type:"GET",headers:{accept:"application/json;odata=verbose"},url:url}).done(function(e){e.next=function(){var t=$.Deferred();return a(null,e.d.__next).then(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise()},e.prev=function(){var t=$.Deferred();return a(null,e.d.__prev).then(function(e){t.resolve(e)},function(e){t.reject(e)}),t.promise()},t.resolve(e)}).fail(function(e){t.reject(e)}),t.promise()},s=function(e){var t=$.Deferred();if(!e)throw"Provided ID is not valid";return $.ajax({type:"GET",headers:{accept:"application/json;odata=verbose"},url:r+"/_api/web/lists/getbytitle('"+o+"')/items("+e+")"}).done(function(e){t.resolve(e)}).fail(function(e){t.reject(e)}),t.promise()},c=function(e){var n=$.Deferred();return t.GetRequestDigest().then(function(t){e.__metadata={type:i};var a=JSON.stringify(e);$.ajax({type:"POST",headers:{accept:"application/json;odata=verbose","content-type":"application/json;odata=verbose","X-RequestDigest":t},data:a,url:r+"/_api/web/lists/getbytitle('"+o+"')/items"}).done(function(e){n.resolve(e)}).fail(function(e){n.reject(e)})},function(e){n.reject(e)}),n.promise()},l=function(e,n){n||(n="*");var i=$.Deferred();return t.GetRequestDigest().then(function(t){$.ajax({type:"POST",headers:{"X-RequestDigest":t,"X-HTTP-Method":"DELETE","If-Match":n},url:r+"/_api/web/lists/getbytitle('"+o+"')/items("+e+")"}).done(function(e){i.resolve(e)}).fail(function(e){i.reject(e)})},function(e){i.reject(e)}),i.promise()},u=function(e,n,a){a||(a="*");var s=$.Deferred();return t.GetRequestDigest().then(function(t){n.__metadata={type:i};var c=JSON.stringify(n);$.ajax({type:"POST",headers:{accept:"application/json;odata=verbose","content-type":"application/json;odata=verbose","X-RequestDigest":t,"X-HTTP-Method":"MERGE","If-Match":a},data:c,url:r+"/_api/web/lists/getbytitle('"+o+"')/items("+e+")"}).done(function(e){s.resolve(e)}).fail(function(e){s.reject(e)})},function(e){s.reject(e)}),s.promise()},p=function(e){var t=$.Deferred();return e=e?"?"+e:"",$.ajax({type:"GET",headers:{accept:"application/json;odata=verbose"},url:r+"/_api/web/lists/getbytitle('"+o+"')/items"+e}).done(function(e){t.resolve(e)}).fail(function(e){t.reject(e)}),t.promise()},f=function(e){return n.filter="$filter="+e,this},d=function(e){return n.expand="$expand="+e,this},m=function(e){return n.select="$select="+e,this},v=function(e){return n.orderBy="$orderby="+e,this};return{get:a,getById:s,add:c,remove:l,update:u,query:p,where:f,expand:d,select:m,orderBy:v}},Jello.Taxonomy=function(e){if(!SP.Taxonomy)throw"SP.Taxonomy is not loaded. Please ensure SP.Taxonomy is loaded before proceeding.";if(!e.TermStore)throw"TermStore null or undefined";var t=e.TermStore,n=function(e){if(!e)throw"Term set ID null or undefined.";return $.Deferred(function(n){var r=SP.ClientContext.get_current(),o=SP.Taxonomy.TaxonomySession.getTaxonomySession(r),i=o.get_termStores(),a=i.getByName(t),s=a.getTermSet(e),c=s.getAllTerms();r.load(c),r.executeQueryAsync(function(){n.resolve(c)},function(e,t){n.reject(t)})})},r=function(e){if(!e||!e.Name||!e.GUID)throw"Name or GUID is null or undefined";return $.Deferred(function(n){var r=SP.ClientContext.get_current(),o=SP.Taxonomy.TaxonomySession.getTaxonomySession(r),i=o.get_termStores(),a=i.getByName(t),s=a.createGroup(e.Name,e.GUID);r.load(s),r.executeQueryAsync(function(){n.resolve(s)},function(e,t){n.reject(t)})})},o=function(e){if(!(e&&e.GroupGUID&&e.TermSetName&&e.TermSetGUID&&e.TermSetLCID))throw"One or more parameters null or undefined. Required parameters are GroupGUID, TermSetName, TermSetGUID, TermSetLCID";return $.Deferred(function(n){var r=SP.ClientContext.get_current(),o=SP.Taxonomy.TaxonomySession.getTaxonomySession(r),i=o.get_termStores(),a=i.getByName(t),s=a.getGroup(e.GroupGUID),c=s.createTermSet(e.TermSetName,e.TermSetGUID,e.TermSetLCID);r.load(c),r.executeQueryAsync(function(){n.resolve(c)},function(e,t){n.reject(t)})})},i=function(e){if(!(e&&e.TermSetGUID&&e.TermName&&e.TermLCID&&e.TermGUID))throw"One or more parameters null or undefined. Required parameters are TermSetGUID, TermName, TermLCID, TermGUID";return $.Deferred(function(n){var r=SP.ClientContext.get_current(),o=SP.Taxonomy.TaxonomySession.getTaxonomySession(r),i=o.get_termStores(),a=i.getByName(t),s=a.getTermSet(e.TermSetGUID),c=s.createTerm(e.TermName,e.TermLCID,e.TermGUID);c.set_isAvailableForTagging(e.isAvailableForTagging),r.load(c),r.executeQueryAsync(function(){n.resolve(c)},function(e,t){n.reject(t)})})},a=function(e){if(!e)throw"GUID is null or undefined.";return $.Deferred(function(t){var n='<View><Query><Where><Eq><FieldRef Name="IdForTerm"/><Value Type="Text">'+e+"</Value></Eq></Where></Query></View>",r=SP.ClientContext.get_current(),o=r.get_web().get_lists().getByTitle("TaxonomyHiddenList"),i=new SP.CamlQuery;i.set_viewXml(n);var a=o.getItems(i);r.load(a),r.executeQueryAsync(function(){for(var e=a.getEnumerator(),n=[];e.moveNext();){var r=e.get_current();n.push(r.get_id())}t.resolve(n)},function(e,n){t.reject(n)})})};return{getAllTerms:n,addTermGroup:r,addTermSet:o,addTerm:i,getWssIdFromGuid:a}},Jello.Web=function(e){var t=function(){var e=null,t=function(){var t=$.Deferred();return e&&e.expiresOn>new Date?t.resolve(e):($.ajax({type:"POST",url:n+"/_api/contextinfo",headers:{accept:"application/json;odata=verbose"}}).done(function(n){var r=(new Date).getTime();e=n.d.GetContextWebInformation,e.expiresOn=r+1e3*n.d.GetContextWebInformation.FormDigestTimeoutSeconds-6e4,t.resolve(e.FormDigestValue)}).fail(function(e){console.log("Error fetching Request Digest. Some parts won't work."),t.reject(e)}),t.promise())};return{GetRequestDigest:t}}(),n=e.site,r=function(e){var r=$.Deferred();return t.GetRequestDigest().then(function(t){$.ajax({url:n+"/_api/web/webinfos/add",type:"POST",headers:{accept:"application/json;odata=verbose","content-type":"application/json;odata=verbose","X-RequestDigest":t},data:JSON.stringify({parameters:{__metadata:{type:"SP.WebInfoCreationInformation"},Url:e.siteUrl,Title:e.siteName,Description:e.siteDescription,Language:e.Language,WebTemplate:e.siteTemplate,UseUniquePermissions:e.uniquePermissions}})}).done(function(e){r.resolve(e)}).fail(function(e){r.reject(e)})},function(e){r.reject(e)}),r.promise()};return{add:r}};