|
1 | | -/* ################# DRAFT ! NEVER RUN ############# */ |
| 1 | +import ConfigModel from 'rose/models/system-config'; |
| 2 | +import ObserverCollection from 'rose/collections/observers'; |
| 3 | +import ExtractorCollection from 'rose/collections/extractors'; |
2 | 4 |
|
3 | | -import ConfigModel from 'models/system-config'; |
4 | | -import ObserverCollection from 'collections/observers'; |
5 | | -import ExtractorCollection from 'collections/extractors'; |
| 5 | +let configs = new ConfigModel(); |
6 | 6 |
|
7 | | -class Updater { |
8 | | - constructor() { |
9 | | - // code |
10 | | - this.configs = new ConfigModel(); |
11 | | - this.configs.fetch(); |
| 7 | +let update = () => { |
| 8 | + configs.fetch({success: () => { |
| 9 | + //request repo url and update observer/extractor accordingly |
| 10 | + // $.get(configs.get('repositoryURL'), function(data) { |
| 11 | + $.get('https://secure-software-engineering.github.io/rose/example/base.json', function(data) { |
12 | 12 |
|
13 | | - this.observers = new ObserverCollection(); |
14 | | - this.extractors = new ExtractorCollection(); |
15 | | - this.fetchCollections(); |
16 | | - } |
| 13 | + console.log(data); |
17 | 14 |
|
18 | | - fetchCollections() { |
19 | | - return $.when(this.observers.fetch(), this.extractors.fetch()); |
20 | | - } |
| 15 | + //verfiy timestamp and signature |
| 16 | + //iterate through networks |
21 | 17 |
|
22 | | - updateFromRepository() { |
23 | | - //request repo url and update observer/extractor accordingly |
24 | | - $.get(this.configs.get('repositoryURL'), function(data) { |
25 | | - console.log(data); |
26 | | - //verfiy timestamp and signature |
27 | | - //iterate through networks |
28 | | - let networks = this.configs.get(networks); |
| 18 | + |
| 19 | + let lastUpadte = 1436534468580; |
| 20 | + if (lastUpadte < data.timestamp) { |
| 21 | + |
| 22 | + // let networks = this.configs.get(networks); |
| 23 | + let networks = [{ id: 1, name: 'Facebook', descriptiveName: 'Facebook', identifier: 'facebook.com'}]; |
29 | 24 | for (var n = networks.length - 1; n >= 0; n--) { |
30 | | - let network = networks[n].name; |
| 25 | + debugger; |
| 26 | + let remoteNetwork = _.findWhere(data.networks, {id: networks[n].id, name: networks[n].name}); |
31 | 27 |
|
| 28 | + if (remoteNetwork !== undefined) { |
32 | 29 | //request observer file |
| 30 | + $.get('https://secure-software-engineering.github.io/rose/example/' + remoteNetwork.observers, function(observers) { |
| 31 | + console.log(observers); |
| 32 | + updateByVersion(new ObserverCollection(), observers); |
| 33 | + }); |
33 | 34 | //request extractor file |
| 35 | + $.get('https://secure-software-engineering.github.io/rose/example/' + remoteNetwork.extractors, function(extractors) { |
| 36 | + console.log(extractors); |
| 37 | + updateByVersion(new ExtractorCollection(), extractors); |
| 38 | + }); |
| 39 | + |
| 40 | + } |
| 41 | + } |
| 42 | + } |
34 | 43 |
|
35 | | - }; |
36 | 44 | }); |
37 | | - } |
| 45 | + }}); |
| 46 | +}; |
38 | 47 |
|
39 | | - updateObservers(observers) { |
40 | | - this.observers.each((observer) => { |
41 | | - let remoteObserver = _.findWhere(observers, {name: observer.get('name'), network: observer.get('network')}); |
| 48 | +let compareVersion = (version1, version2) => { |
42 | 49 |
|
43 | | - if (remoteObserver !== undefined && Number(remoteObserver.version) > Number(observer.get('version'))) { |
44 | | - observer.save(remoteObserver); |
45 | | - } |
46 | | - }); |
| 50 | + var result = false; |
47 | 51 |
|
48 | | - } |
| 52 | + version1 = version1.split('.'); |
| 53 | + version2 = version2.split('.'); |
49 | 54 |
|
50 | | - updateExtractors(extractors) { |
51 | | - this.extractors.each((extractor) => { |
52 | | - let remoteExtractor = _.findWhere(extractors, {name: extractor.get('name'), network: extractor.get('network')}); |
| 55 | + for(var i=0; i < (Math.max(version1.length,version2.length)); i++){ |
53 | 56 |
|
54 | | - if (remoteExtractor !== undefined && Number(remoteExtractor.version) > Number(extractor.get('version'))) { |
55 | | - extractor.save(remoteObserver); |
56 | | - } |
57 | | - }); |
| 57 | + if(version1[i] === undefined){ version1[i] = 0; } |
| 58 | + if(version2[i] === undefined){ version2[i] = 0; } |
58 | 59 |
|
59 | | - } |
| 60 | + if(Number(version1[i]) < Number(version2[i])){ |
| 61 | + result = true; |
| 62 | + break; |
| 63 | + } |
| 64 | + if(version1[i] !== version2[i]){ |
| 65 | + break; |
| 66 | + } |
| 67 | + } |
| 68 | + return(result); |
| 69 | +}; |
60 | 70 |
|
61 | | - loadAllIntoStorage(networks) { |
62 | | - //load all observers / extractors |
63 | | - } |
64 | | -} |
| 71 | +let updateByVersion = (collection, newCollection) => { |
| 72 | + collection.fetch({success: () => { |
| 73 | + debugger; |
| 74 | + collection.each((model) => { |
| 75 | + let remoteModel = _.findWhere(newCollection, {name: model.get('name'), network: model.get('network')}); |
| 76 | + if (remoteModel !== undefined && compareVersion(model.get('version'), remoteModel.version)) { |
| 77 | + model.save(remoteModel); |
| 78 | + console.log('updated observer/extractor'); |
| 79 | + } |
| 80 | + else console.log('no update'); |
| 81 | + }); |
| 82 | + }}); |
| 83 | +}; |
65 | 84 |
|
66 | | -export default Updater; |
| 85 | +export default {update}; |
0 commit comments