Skip to content

Commit 35df21c

Browse files
Merge pull request #13 from contentstack/cache_hotfix
Resolved localStorage disable Issue
2 parents 273862a + 6fe621a commit 35df21c

File tree

9 files changed

+139
-103
lines changed

9 files changed

+139
-103
lines changed

.DS_Store

-6 KB
Binary file not shown.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.DS_Store
1+
*.DS_Store
22
examples/*
33
node_modules/*
44
.idea/*

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().includeReference('secondary_section.reference.reference').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

100755100644
Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,43 @@
22

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

5-
const Demo = new ContentstackDemo({ 'api_key': 'blt4f29123a87c48c8b', 'access_token': 'bltb77300e99de1ce68', 'environment': 'local'})
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

8-
Demo
9-
.getEntries('generic_template_1')
10-
.then(function(result) {
11-
// result object with entry
12-
console.log("scnjdncjdncjd", result[0][0].getDownloadUrl())
13-
//console.info("Result2 : ", JSON.stringify(result))
9+
// Demo
10+
// .getEntries('source')
11+
// .then(function(result) {
12+
// // result object with entry
13+
// console.info("Result2 : ", result)
14+
15+
// //console.info("Result2 : ", JSON.stringify(result))
1416

15-
})
16-
.catch(function(err) {
17-
// error of get entry
18-
console.error("Fetch Error :", err)
19-
})
17+
// })
18+
// .catch(function(err) {
19+
// // error of get entry
20+
// console.error("Fetch Error :", err)
21+
// })
2022

2123

2224

2325
//get all the entries
24-
// Demo.getSyncApi({"init": true, "type": "asset_published"})
25-
// .then(function(result) {
26-
// // result object with entries
27-
// console.info("Result: ", result)
28-
29-
// })
30-
// .catch(function(err) {
31-
// // error of get all entries
32-
// console.error("Find Error :", err)
33-
// })
34-
35-
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+
}
37+
})
38+
.catch(function(err) {
39+
// error of get all entries
40+
console.error("Find Error :", err)
41+
})
3642

3743
// // get single asset
3844
// Demo

examples/web/scripts/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/web/scripts/custom.min.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
if (entry) {
1212
html += '<div class="panel panel-default"><div class="panel-heading" role="tab"><h4 class="panel-title"><a role="button" data-toggle="collapse" data-parent="#accordion" href="#' + entry.uid + '" aria-expanded="true" aria-controls="' + entry.uid + '">';
1313
html += entry.title + '</a></h4></div><div id="' + entry.uid + '" class="panel-collapse collapse" role="tabpanel"><div class="panel-body">';
14-
html += entry.url + ' </div></div></div>';
14+
html += entry.body + ' </div></div></div>';
1515
}
1616
return html;
1717
}
@@ -54,6 +54,7 @@
5454
}
5555
}, function(err) {
5656
console.info('Error : ' + err);
57+
console.log(err);
5758
});
5859
}
5960

@@ -83,10 +84,10 @@
8384

8485
window.onload = function() {
8586
wrapper = document.getElementById('wrapper')
86-
Stack = Contentstack.Stack({ 'api_key': 'blt123something', 'access_token': 'blt123something', 'environment': 'mobile' })
87-
87+
Stack = Contentstack.Stack({ 'api_key': '', 'access_token': '', 'environment': '' })
88+
Stack.setCachePolicy(Contentstack.CachePolicy.NETWORK_ELSE_CACHE);
8889
// get all the entries
89-
allEntries("blogs")
90+
allEntries("news")
9091

9192
// get all the assets
9293
// getAsset();

src/core/cache.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@ export function get(key) {
1212
};
1313

1414
export function set(key, data) {
15-
if (typeof data === 'object') {
16-
storage.setItem(key, JSON.stringify(data));
17-
} else {
18-
storage.setItem(key, data);
19-
}
15+
try {
16+
if (typeof data === 'object') {
17+
console.log("storage", storage)
18+
storage.setItem(key, JSON.stringify(data));
19+
//localStorage.setItem("hello", "Smith");
20+
} else {
21+
console.log("else")
22+
storage.setItem(key, data);
23+
}
24+
} catch (error) {
25+
}
2026
};
2127

2228
export function getStorage() {

src/core/lib/utils.js

Lines changed: 37 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export function sendRequest(queryObject) {
257257
} else if (data.assets && data.assets.length) {
258258
entries.assets = data.assets[0];
259259
} else {
260-
if (cachePolicy === 2) {
260+
if (cachePolicy === 2 && self.provider !== null) {
261261
self.provider.get(hashQuery, getCacheCallback());
262262
} else {
263263
return reject({ error_code: 141, error_message: 'The requested entry doesn\'t exist.' });
@@ -276,7 +276,7 @@ export function sendRequest(queryObject) {
276276
entries = data;
277277
}
278278

279-
if (cachePolicy !== -1) {
279+
if (cachePolicy !== -1 && self.provider !== null) {
280280
self.provider.set(hashQuery, entries, function(err) {
281281
try {
282282
if (err) throw err;
@@ -304,30 +304,34 @@ export function sendRequest(queryObject) {
304304
}
305305
}.bind(self))
306306
.catch(function(error) {
307-
if (cachePolicy === 2) {
307+
if (cachePolicy === 2 && self.provider !== null) {
308308
self.provider.get(hashQuery, getCacheCallback());
309309
} else {
310310
return reject(error);
311311
}
312312
});
313313
}
314314
};
315-
316315
switch (cachePolicy) {
317316
case 1:
318317
return new Promise(function(resolve, reject) {
319-
self.provider.get(hashQuery, function(err, _data) {
320-
try {
321-
if (err || !_data) {
322-
callback(true, resolve, reject);
323-
} else {
324-
if (!tojson) _data = resultWrapper(_data);
325-
return resolve(spreadResult(_data));
318+
if (self.provider !== null) {
319+
self.provider.get(hashQuery, function(err, _data) {
320+
try {
321+
if (err || !_data) {
322+
callback(true, resolve, reject);
323+
} else {
324+
if (!tojson) _data = resultWrapper(_data);
325+
return resolve(spreadResult(_data));
326+
}
327+
} catch (e) {
328+
return reject(e);
326329
}
327-
} catch (e) {
328-
return reject(e);
329-
}
330-
});
330+
});
331+
}else {
332+
callback(true, resolve, reject);
333+
}
334+
331335
});
332336
break;
333337
case 2:
@@ -340,67 +344,34 @@ export function sendRequest(queryObject) {
340344
};
341345

342346
if (cachePolicy === 3) {
343-
return {
344-
cache: (function() {
345-
return new Promise(function(resolve, reject) {
347+
348+
var promise = new Promise(function(resolve, reject) {
349+
if (self.provider !== null) {
346350
self.provider.get(hashQuery, function(err, _data) {
347351
try {
348-
if (err) {
349-
reject(err);
352+
if (err || !_data) {
353+
reject(err);
354+
//reject(Error("It broke"));
350355
} else {
351356
if (!tojson) _data = resultWrapper(_data);
352-
resolve(spreadResult(_data));
357+
resolve(spreadResult(_data));
353358
}
354359
} catch (e) {
355-
reject(e);
360+
reject(e);
356361
}
357362
});
358-
});
359-
}()),
360-
network: (function() {
361-
return new Promise(function(resolve, reject) {
363+
}
364+
});
365+
366+
return promise.then(function() {
367+
return new Promise(function(resolve, reject) {
362368
callback(true, resolve, reject);
363369
});
364-
}()),
365-
both: function(_callback_) {
366-
self.provider.get(hashQuery, function(err, entries) {
367-
if (!tojson) entries = resultWrapper(entries);
368-
_callback_(err, spreadResult(entries))
370+
}).catch((error) => {
371+
return new Promise(function(resolve, reject) {
372+
callback(true, resolve, reject);
369373
});
370-
Request(queryObject.requestParams)
371-
.then(function(data) {
372-
try {
373-
self.entry_uid = self.tojson = self.queryCachePolicy = undefined;
374-
let entries = {},
375-
error = null;
376-
if (queryObject.singleEntry) {
377-
queryObject.singleEntry = false;
378-
if (data.schema) entries.schema = data.schema;
379-
if (data.content_type) {
380-
entries.content_type = data.content_type;
381-
delete entries.schema
382-
}
383-
if (data.entries && data.entries.length) {
384-
entries.entry = data.entries[0];
385-
} else if (data.assets && data.assets.length) {
386-
entries.assets = data.assets[0];
387-
} else {
388-
error = { error_code: 141, error_message: 'The requested entry doesn\'t exist.' };
389-
}
390-
} else {
391-
entries = data;
392-
}
393-
if (!tojson) entries = resultWrapper(entries);
394-
_callback_(error, spreadResult(entries));
395-
} catch (e) {
396-
_callback_(e);
397-
}
398-
}.bind(self))
399-
.catch(function(error) {
400-
_callback_(error);
401-
});
402-
}
403-
404-
};
374+
console.error(error)
375+
})
405376
}
406377
};

src/runtime/web/localstorage.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,16 @@
1-
export default window.localStorage;
1+
// export default window.localStorage;
2+
3+
let webLocalStoreage = function (){
4+
try {
5+
var storage = window.localStorage
6+
// x = '__storage_test__';
7+
// storage.setItem(x, x);
8+
// storage.removeItem(x);
9+
return storage;
10+
} catch(e) {
11+
return null
12+
}
13+
};
14+
15+
export default webLocalStoreage();
16+

0 commit comments

Comments
 (0)