Skip to content

Commit b3f236e

Browse files
Added two new methods and solved the cachepolicy
1 parent f88c3f6 commit b3f236e

File tree

9 files changed

+1035
-606
lines changed

9 files changed

+1035
-606
lines changed

dist/node/contentstack.js

Lines changed: 820 additions & 506 deletions
Large diffs are not rendered by default.

dist/web/contentstack.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/node/contentstack-demo.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,43 @@ class ContentstackDemo {
2727
return this.Stack.ContentType(contentTypeUid).Query().toJSON().find()
2828
}
2929

30+
/**
31+
* getEntries
32+
* @description : getEntries is used to get the entries of the specified entries
33+
* @params : contentTypeUid {string} - Content-Type from which entries to be retrieved
34+
* @return : Result {Promise}
35+
*/
36+
getLastActivities() {
37+
//contentTypeUid = contentTypeUid || 'source'
38+
return this.Stack.getLastActivities()
39+
}
40+
41+
/**
42+
* getEntries
43+
* @description : getEntries is used to get the entries of the specified entries
44+
* @params : contentTypeUid {string} - Content-Type from which entries to be retrieved
45+
* @return : Result {Promise}
46+
*/
47+
getAllContentType() {
48+
//contentTypeUid = contentTypeUid || 'source'
49+
return this.Stack.getAllContentTypes()
50+
}
51+
52+
/**
53+
* getEntries
54+
* @description : getEntries is used to get the entries of the specified entries
55+
* @params : contentTypeUid {string} - Content-Type from which entries to be retrieved
56+
* @return : Result {Promise}
57+
*/
58+
getContentType(uid) {
59+
//contentTypeUid = contentTypeUid || 'source'
60+
return this.Stack.getContentType(uid)
61+
}
62+
63+
64+
65+
66+
3067

3168
/**
3269
* fetchEntry

examples/node/index.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
const ContentstackDemo = require('./contentstack-demo.js')
44

5-
const Demo = new ContentstackDemo({ 'api_key': '<api_key>', 'access_token': '<Delivery_token>', 'environment': '<Environment>'})
5+
//const Demo = new ContentstackDemo({ 'api_key': "blt292960b854e5170e", 'access_token': "blt468d2af41a0f061c", 'environment': "development"})
6+
const Demo = new ContentstackDemo({ 'api_key': "blta18f3e7d09cb530c", 'access_token': "blt5260e2a69bb91bc6", 'environment': "development"})
67

78

89
// Demo
@@ -22,19 +23,23 @@ const Demo = new ContentstackDemo({ 'api_key': '<api_key>', 'access_token': '<De
2223

2324

2425
//get all the entries
25-
Demo.getSyncApi({"init": true, "type": "asset_published"})
26-
.then(function(result) {
27-
// result object with entries
28-
console.info("Result: ", result)
29-
26+
Demo.getContentType("header")
27+
.then(function(err, result) {
28+
try {
29+
if (err || !result) {
30+
console.log(err)
31+
} else {
32+
console.info("Result: ", JSON.stringify(result))
33+
}
34+
} catch (e) {
35+
return reject(e);
36+
}
3037
})
3138
.catch(function(err) {
3239
// error of get all entries
3340
console.error("Find Error :", err)
3441
})
3542

36-
37-
3843
// // get single asset
3944
// Demo
4045
// .getAsset('bltsomething123')

examples/web/scripts/custom.min.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@
8484

8585
window.onload = function() {
8686
wrapper = document.getElementById('wrapper')
87-
Stack = Contentstack.Stack({ 'api_key': 'blt7979d15c28261b93', 'access_token': 'cs17465ae5683299db9d259cb6', 'environment': 'production' })
88-
Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE);
87+
Stack = Contentstack.Stack({ 'api_key': '', 'access_token': '', 'environment': '' })
88+
Stack.setCachePolicy(Contentstack.CachePolicy.CACHE_THEN_NETWORK);
8989
// get all the entries
9090
allEntries("news")
9191

src/core/cache.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ export function get(key) {
1414
export function set(key, data) {
1515
try {
1616
if (typeof data === 'object') {
17+
console.log("storage", storage)
1718
storage.setItem(key, JSON.stringify(data));
19+
//localStorage.setItem("hello", "Smith");
1820
} else {
21+
console.log("else")
1922
storage.setItem(key, data);
2023
}
21-
} catch (error) {
22-
23-
}
24-
24+
} catch (error) {
25+
}
2526
};
2627

2728
export function getStorage() {

src/core/lib/utils.js

Lines changed: 95 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -312,10 +312,11 @@ export function sendRequest(queryObject) {
312312
});
313313
}
314314
};
315-
315+
console.log("cachePolicy", cachePolicy)
316316
switch (cachePolicy) {
317317
case 1:
318318
return new Promise(function(resolve, reject) {
319+
console.log("self.prvider>>>>>", self.provider)
319320
if (self.provider !== null) {
320321
self.provider.get(hashQuery, function(err, _data) {
321322
try {
@@ -345,91 +346,107 @@ export function sendRequest(queryObject) {
345346
};
346347

347348
if (cachePolicy === 3) {
348-
/////// New Implementaion
349-
// return new Promise(function(resolve, reject) {
350-
// // if (self.provider !== null) {
351-
// self.provider.get(hashQuery, function(err, _data) {
352-
// try {
353-
// if (err) {
354-
// reject(err);
355-
// } else {
356-
// if (!tojson) _data = resultWrapper(_data);
357-
// resolve(spreadResult(_data));
358-
// }
359-
// } catch (e) {
360-
// reject(e);
361-
// }
362-
// });
363-
// // }else {
364-
// // callback(true, resolve, reject);
365-
// // // reject({ error_code: 141, error_message: 'The requested entry doesn\'t exist.' });
366-
// // }
367-
// });
368349

369-
// Old Implementation
370-
return {
371-
cache: (function() {
372-
return new Promise(function(resolve, reject) {
373-
self.provider.get(hashQuery, function(err, _data) {
374-
try {
375-
if (err) {
376-
reject(err);
377-
} else {
378-
if (!tojson) _data = resultWrapper(_data);
379-
resolve(spreadResult(_data));
380-
}
381-
} catch (e) {
382-
reject(e);
383-
}
384-
});
385-
});
386-
}()),
387-
network: (function() {
388-
return new Promise(function(resolve, reject) {
389-
callback(true, resolve, reject);
390-
});
391-
}()),
392-
both: function(_callback_) {
350+
var promise = new Promise(function(resolve, reject) {
393351
if (self.provider !== null) {
394-
self.provider.get(hashQuery, function(err, entries) {
395-
if (!tojson) entries = resultWrapper(entries);
396-
_callback_(err, spreadResult(entries))
397-
});
398-
}
399-
Request(queryObject.requestParams)
400-
.then(function(data) {
352+
console.log("inside the catche")
353+
self.provider.get(hashQuery, function(err, _data) {
401354
try {
402-
self.entry_uid = self.tojson = self.queryCachePolicy = undefined;
403-
let entries = {},
404-
error = null;
405-
if (queryObject.singleEntry) {
406-
queryObject.singleEntry = false;
407-
if (data.schema) entries.schema = data.schema;
408-
if (data.content_type) {
409-
entries.content_type = data.content_type;
410-
delete entries.schema
411-
}
412-
if (data.entries && data.entries.length) {
413-
entries.entry = data.entries[0];
414-
} else if (data.assets && data.assets.length) {
415-
entries.assets = data.assets[0];
416-
} else {
417-
error = { error_code: 141, error_message: 'The requested entry doesn\'t exist.' };
418-
}
355+
if (err || !_data) {
356+
return reject(err);
357+
//reject(Error("It broke"));
419358
} else {
420-
entries = data;
359+
console.log("inside else part")
360+
if (!tojson) _data = resultWrapper(_data);
361+
return resolve(spreadResult(_data));
421362
}
422-
if (!tojson) entries = resultWrapper(entries);
423-
_callback_(error, spreadResult(entries));
424363
} catch (e) {
425-
_callback_(e);
364+
return reject(e);
426365
}
427-
}.bind(self))
428-
.catch(function(error) {
429-
_callback_(error);
430366
});
431-
}
367+
}
368+
});
432369

433-
};
370+
return promise.then(function() {
371+
return new Promise(function(resolve, reject) {
372+
callback(true, resolve, reject);
373+
});
374+
}).catch((error) => {
375+
return new Promise(function(resolve, reject) {
376+
callback(true, resolve, reject);
377+
});
378+
console.error(error)
379+
})
380+
381+
// return {
382+
// cache: (function() {
383+
// console.log("inside cache")
384+
// return new Promise(function(resolve, reject) {
385+
// self.provider.get(hashQuery, function(err, _data) {
386+
// console.log("datatatat", _data)
387+
// try {
388+
// if (err) {
389+
// reject(err);
390+
// } else {
391+
// console.log("else part")
392+
// if (!tojson) _data = resultWrapper(_data);
393+
// console.log("spreddatat", _data)
394+
// resolve(spreadResult(_data));
395+
// }
396+
// } catch (e) {
397+
// reject(e);
398+
// }
399+
// });
400+
// });
401+
// }()),
402+
// network: (function() {
403+
// console.log("inside netwrk")
404+
// return new Promise(function(resolve, reject) {
405+
// callback(true, resolve, reject);
406+
// });
407+
// }()),
408+
// both: function(_callback_) {
409+
// console.log("inside both")
410+
// if (self.provider !== null) {
411+
// self.provider.get(hashQuery, function(err, entries) {
412+
// if (!tojson) entries = resultWrapper(entries);
413+
// _callback_(err, spreadResult(entries))
414+
// });
415+
// }
416+
// Request(queryObject.requestParams)
417+
// .then(function(data) {
418+
// console.log("datattatat>>>>>>>", data)
419+
// try {
420+
// self.entry_uid = self.tojson = self.queryCachePolicy = undefined;
421+
// let entries = {},
422+
// error = null;
423+
// if (queryObject.singleEntry) {
424+
// queryObject.singleEntry = false;
425+
// if (data.schema) entries.schema = data.schema;
426+
// if (data.content_type) {
427+
// entries.content_type = data.content_type;
428+
// delete entries.schema
429+
// }
430+
// if (data.entries && data.entries.length) {
431+
// entries.entry = data.entries[0];
432+
// } else if (data.assets && data.assets.length) {
433+
// entries.assets = data.assets[0];
434+
// } else {
435+
// error = { error_code: 141, error_message: 'The requested entry doesn\'t exist.' };
436+
// }
437+
// } else {
438+
// entries = data;
439+
// }
440+
// if (!tojson) entries = resultWrapper(entries);
441+
// _callback_(error, spreadResult(entries));
442+
// } catch (e) {
443+
// _callback_(e);
444+
// }
445+
// }.bind(self))
446+
// .catch(function(error) {
447+
// _callback_(error);
448+
// });
449+
// }
450+
// };
434451
}
435452
};

src/core/stack.js

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,61 @@ export default class Stack {
288288
}
289289

290290

291+
/**
292+
* @method getAllContentType
293+
* @description getAllContentType get all the ContentTypes whose last activity updated.
294+
* @example Stack.getAllContentType()
295+
* @example
296+
* let data = Stack.getAllContentType().toJSON().fetch()
297+
* data
298+
* .then(function(result) {
299+
* // 'result' is list of contentTypes whose last activity updated.
300+
* }, function(error) {
301+
* // error function
302+
* })
303+
* @returns {Stack}
304+
* @ignore
305+
*/
306+
getAllContentTypes() {
307+
let query = {
308+
method: 'POST',
309+
headers: this.headers,
310+
url: this.config.protocol + "://" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types,
311+
body: {
312+
_method: 'GET'
313+
}
314+
};
315+
return Request(query);
316+
}
317+
318+
/**
319+
* @method getContentType
320+
* @description getContentType get all the ContentTypes whose last activity updated.
321+
* @example Stack.getContentType()
322+
* @example
323+
* let data = Stack.getContentType().toJSON().fetch()
324+
* data
325+
* .then(function(result) {
326+
* // 'result' is list of contentTypes whose last activity updated.
327+
* }, function(error) {
328+
* // error function
329+
* })
330+
* @returns {Stack}
331+
* @ignore
332+
*/
333+
getContentType(content_type_uid) {
334+
let query = {
335+
method: 'POST',
336+
headers: this.headers,
337+
url: this.config.protocol + "://" + this.config.host + ':' + this.config.port + '/' + this.config.version + this.config.urls.content_types + content_type_uid,
338+
body: {
339+
_method: 'GET',
340+
environment: this.environment
341+
}
342+
};
343+
return Request(query);
344+
}
345+
291346
/**
292347
* @method sync
293348
* @description Syncs your Contentstack data with your app and ensures that the data is always up-to-date by providing delta updates

src/runtime/web/localstorage.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
let webLocalStoreage = function (){
44
try {
5-
var storage = window.localStorage,
6-
x = '__storage_test__';
7-
storage.setItem(x, x);
8-
storage.removeItem(x);
9-
return window[type];
5+
var storage = window.localStorage
6+
// x = '__storage_test__';
7+
// storage.setItem(x, x);
8+
// storage.removeItem(x);
9+
return storage;
1010
} catch(e) {
1111
return null
1212
}
1313
};
1414

15-
export default webLocalStoreage
15+
export default webLocalStoreage();
1616

0 commit comments

Comments
 (0)