· 6 years ago · Nov 29, 2018, 11:48 PM
1const StoryblokClient = require('storyblok-js-client')
2
3// Insert your oauth token and folder id
4const Storyblok = new StoryblokClient({
5 oauthToken: 'YOUR_OAUTH_TOKEN'
6})
7
8// Insert your source space and folder id
9const spaceId = 'YOUR_SPACE_ID'
10
11const StoryblokHelper = {
12 getAll(page) {
13 return Storyblok.get('spaces/' + spaceId + '/stories', {
14 per_page: 25,
15 page: page
16 })
17 },
18 cleanUp(tree) {
19 var traverse = function (jtree) {
20 if (jtree.constructor === Array) {
21 for (var item = 0; item < jtree.length; item++) {
22 traverse(jtree[item])
23 }
24 } else if (jtree.constructor === Object) {
25 if (jtree._editable) {
26 delete jtree._editable
27 }
28
29 for (var treeItem in jtree) {
30 traverse(jtree[treeItem])
31 }
32 }
33 }
34
35 traverse(tree)
36 return tree
37 }
38}
39
40async function getAllStories(){
41 var page = 1
42 var res = await StoryblokHelper.getAll(page)
43 var all = res.data.stories
44 var total = res.total
45 var lastPage = Math.ceil((res.total / 25))
46
47 while (page < lastPage){
48 page++
49 res = await StoryblokHelper.getAll(page)
50 res.data.stories.forEach((story) => {
51 all.push(story)
52 })
53 }
54
55 for (var i = 0; i < all.length; i++) {
56 console.log('Updating: ' + all[i].name)
57
58 try {
59 let storyResult = await Storyblok.get('spaces/' + spaceId + '/stories/' + all[i].id)
60 let updateResult = await Storyblok.put('spaces/' + spaceId + '/stories/' + all[i].id, {
61 story: {content: StoryblokHelper.cleanUp(storyResult.data.story.content)}
62 })
63 } catch(e) {
64 console.log(e)
65 }
66 }
67
68 return all
69}
70
71getAllStories().then((result) => {
72 console.log('Finished')
73})