UnitApi /
js
| 1 | var Apiunit = function () { |
||
| 2 | |||
| 3 | // this.router = router; |
||
| 4 | this.cfg = {}; |
||
| 5 | this.cfg.router = {}; |
||
| 6 | this.cfg.event = {}; |
||
| 7 | this.cfg.listener = {}; |
||
| 8 | this.cfg.env = {}; |
||
| 9 | |||
| 10 | // this.config = config; |
||
| 11 | |||
| 12 | this.included = []; |
||
| 13 | |||
| 14 | this.success = function (elem) { |
||
| 15 | console.log("Api Unit Success".elem); |
||
|
0 ignored issues
–
show
Debugging Code
introduced
by
Loading history...
|
|||
| 16 | }; |
||
| 17 | |||
| 18 | this.error = function (elem) { |
||
|
0 ignored issues
–
show
|
|||
| 19 | console.error("Api Unit Problem"); |
||
| 20 | }; |
||
| 21 | |||
| 22 | var apiunit = this; |
||
| 23 | |||
| 24 | |||
| 25 | this.listener = function (listener) { |
||
| 26 | |||
| 27 | apiunit.cfg.listener = listener; |
||
| 28 | |||
| 29 | return this; |
||
| 30 | }; |
||
| 31 | |||
| 32 | this.env = function (event) { |
||
| 33 | apiunit.cfg.env = event; |
||
| 34 | apiunit.loadPlugin(obj, error, success); |
||
|
0 ignored issues
–
show
The variable
obj seems to be never declared. If this is a global, consider adding a /** global: obj */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
The variable
error seems to be never declared. If this is a global, consider adding a /** global: error */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
The variable
success seems to be never declared. If this is a global, consider adding a /** global: success */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
|
|||
| 35 | |||
| 36 | return this; |
||
| 37 | }; |
||
| 38 | |||
| 39 | this.event = function (event) { |
||
| 40 | apiunit.cfg.event = event; |
||
| 41 | apiunit.loadPlugin(obj, error, success); |
||
|
0 ignored issues
–
show
The variable
error seems to be never declared. If this is a global, consider adding a /** global: error */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
The variable
success seems to be never declared. If this is a global, consider adding a /** global: success */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
The variable
obj seems to be never declared. If this is a global, consider adding a /** global: obj */ comment.
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed. To learn more about declaring variables in Javascript, see the MDN. Loading history...
|
|||
| 42 | |||
| 43 | return this; |
||
| 44 | }; |
||
| 45 | |||
| 46 | this.loadEvent = function (obj, error, success) { |
||
| 47 | |||
| 48 | if (typeof success !== 'function') { |
||
| 49 | success = this.success; |
||
|
0 ignored issues
–
show
|
|||
| 50 | } |
||
| 51 | if (typeof error !== 'function') { |
||
| 52 | error = this.error; |
||
| 53 | } |
||
| 54 | |||
| 55 | obj = this.fromJsonStringToObj(obj); |
||
| 56 | |||
| 57 | var listener = this.cfg.listener; |
||
| 58 | if (typeof obj !== 'object') { |
||
| 59 | console.error('! apiunit. listener', listener); |
||
| 60 | } |
||
| 61 | var exe = {}; |
||
|
0 ignored issues
–
show
|
|||
| 62 | |||
| 63 | if (typeof obj === 'object') { |
||
| 64 | //console.log('obj:', obj); |
||
| 65 | |||
| 66 | for (var source in obj) { |
||
|
0 ignored issues
–
show
A for in loop automatically includes the property of any prototype object, consider checking the key using
hasOwnProperty.
When iterating over the keys of an object, this includes not only the keys of the object, but also keys contained in the prototype of that object. It is generally a best practice to check for these keys specifically: var someObject;
for (var key in someObject) {
if ( ! someObject.hasOwnProperty(key)) {
continue; // Skip keys from the prototype.
}
doSomethingWith(key);
}
Loading history...
|
|||
| 67 | |||
| 68 | var data = obj[source]; |
||
| 69 | |||
| 70 | console.log('source data', source, data); |
||
|
0 ignored issues
–
show
|
|||
| 71 | |||
| 72 | try { |
||
| 73 | exe = listener[source](data); |
||
| 74 | console.log('apiunit.router[source] =', source, exe); |
||
| 75 | } catch (err) { |
||
| 76 | console.error('! apiunit.router[source]', source, err, obj); |
||
| 77 | } |
||
| 78 | // } |
||
| 79 | //console.log(target, type, value); |
||
| 80 | } |
||
| 81 | } else { |
||
| 82 | console.error('apiunit obj: is not object:', obj); |
||
| 83 | } |
||
| 84 | // console.log(target, type, value); |
||
| 85 | // } |
||
| 86 | console.log('apiunit.included:', apiunit.included); |
||
| 87 | |||
| 88 | return this; |
||
| 89 | }; |
||
| 90 | |||
| 91 | |||
| 92 | this.router = function (router, error, success) { |
||
|
0 ignored issues
–
show
|
|||
| 93 | // if (typeof success !== 'function') { |
||
| 94 | // success = this.success; |
||
| 95 | // } |
||
| 96 | // if (typeof error !== 'function') { |
||
| 97 | // error = this.error; |
||
| 98 | // } |
||
| 99 | apiunit.cfg.router = router; |
||
| 100 | |||
| 101 | return this; |
||
| 102 | }; |
||
| 103 | |||
| 104 | |||
| 105 | this.url = function (path, error, success) { |
||
| 106 | if (typeof success !== 'function') { |
||
| 107 | success = this.success; |
||
|
0 ignored issues
–
show
|
|||
| 108 | } |
||
| 109 | if (typeof error !== 'function') { |
||
| 110 | error = this.error; |
||
|
0 ignored issues
–
show
|
|||
| 111 | } |
||
| 112 | if (typeof path === 'string') { |
||
| 113 | this.loadJSON(path, function (obj) { |
||
| 114 | // Parse JSON string into object |
||
| 115 | // console.log('obj', obj); |
||
| 116 | apiunit.loadPlugin(obj); |
||
| 117 | }); |
||
| 118 | } else { |
||
| 119 | for (var i in path) { |
||
|
0 ignored issues
–
show
A for in loop automatically includes the property of any prototype object, consider checking the key using
hasOwnProperty.
When iterating over the keys of an object, this includes not only the keys of the object, but also keys contained in the prototype of that object. It is generally a best practice to check for these keys specifically: var someObject;
for (var key in someObject) {
if ( ! someObject.hasOwnProperty(key)) {
continue; // Skip keys from the prototype.
}
doSomethingWith(key);
}
Loading history...
|
|||
| 120 | this.loadJSON(path[i], function (obj) { |
||
| 121 | // Parse JSON string into object |
||
| 122 | // console.log('obj', obj); |
||
| 123 | apiunit.loadPlugin(obj); |
||
| 124 | }); |
||
| 125 | // apiunit.loadPlugin(obj[i]); |
||
| 126 | } |
||
| 127 | } |
||
| 128 | |||
| 129 | return this; |
||
| 130 | }; |
||
| 131 | |||
| 132 | this.json = function (obj, delay, error, success) { |
||
| 133 | // if (typeof success !== 'function') { |
||
| 134 | // success = this.success; |
||
| 135 | // } |
||
| 136 | // if (typeof error !== 'function') { |
||
| 137 | // error = this.error; |
||
| 138 | // } |
||
| 139 | // console.log(typeof delay); |
||
| 140 | // return this; |
||
| 141 | |||
| 142 | if (typeof delay === 'number') { |
||
| 143 | // var delay = 100; |
||
| 144 | setTimeout(function () { |
||
| 145 | apiunit.loadPlugin(obj, error, success); |
||
| 146 | }, |
||
| 147 | delay); |
||
| 148 | } else { |
||
| 149 | apiunit.loadPlugin(obj, error, success); |
||
| 150 | } |
||
| 151 | |||
| 152 | return this; |
||
| 153 | }; |
||
| 154 | |||
| 155 | |||
| 156 | this.loadJSON = function (file, callback) { |
||
| 157 | var xobj = new XMLHttpRequest(); |
||
| 158 | xobj.overrideMimeType("application/json"); |
||
| 159 | xobj.open('GET', file, true); |
||
| 160 | // Replace 'my_data' with the path to your file |
||
| 161 | xobj.onreadystatechange = function () { |
||
| 162 | if (xobj.readyState === 4 && xobj.status === 200) { |
||
| 163 | // Required use of an anonymous callback |
||
| 164 | // as .open() will NOT return a value but simply returns undefined in asynchronous mode |
||
| 165 | callback(xobj.responseText); |
||
| 166 | } else { |
||
| 167 | console.error(file, xobj); |
||
| 168 | } |
||
| 169 | }; |
||
| 170 | xobj.send(null); |
||
| 171 | return this; |
||
| 172 | }; |
||
| 173 | |||
| 174 | |||
| 175 | this.loadPlugin = function (obj, error, success) { |
||
| 176 | |||
| 177 | if (typeof success !== 'function') { |
||
| 178 | success = this.success; |
||
|
0 ignored issues
–
show
|
|||
| 179 | } |
||
| 180 | if (typeof error !== 'function') { |
||
| 181 | error = this.error; |
||
| 182 | } |
||
| 183 | |||
| 184 | obj = this.fromJsonStringToObj(obj); |
||
| 185 | |||
| 186 | var router = this.cfg.router; |
||
| 187 | var exe = {}; |
||
|
0 ignored issues
–
show
|
|||
| 188 | // for (var target in obj) { |
||
| 189 | |||
| 190 | //type = obj[target]; |
||
| 191 | //value = obj[target][type]; |
||
| 192 | |||
| 193 | |||
| 194 | //console.log(typeof obj[target]); |
||
| 195 | //console.log(obj[target]); |
||
| 196 | //console.log('target:', target); |
||
| 197 | |||
| 198 | // router = new Router(target, error, success); |
||
| 199 | |||
| 200 | if (typeof obj === 'object') { |
||
| 201 | //console.log('obj:', obj); |
||
| 202 | |||
| 203 | for (var source in obj) { |
||
|
0 ignored issues
–
show
A for in loop automatically includes the property of any prototype object, consider checking the key using
hasOwnProperty.
When iterating over the keys of an object, this includes not only the keys of the object, but also keys contained in the prototype of that object. It is generally a best practice to check for these keys specifically: var someObject;
for (var key in someObject) {
if ( ! someObject.hasOwnProperty(key)) {
continue; // Skip keys from the prototype.
}
doSomethingWith(key);
}
Loading history...
|
|||
| 204 | |||
| 205 | //console.log('source:', source); |
||
| 206 | //console.log('obj[source]:', typeof obj[source]); |
||
| 207 | //console.log('obj[source]:', obj[source]); |
||
| 208 | //for (i = 0; i < obj.length; i++) { |
||
| 209 | |||
| 210 | // console.log(typeof obj[source]); |
||
| 211 | // console.log(obj[source]); |
||
| 212 | |||
| 213 | // if (typeof obj[source] !== 'object') { |
||
| 214 | // obj[source] = [obj[source]]; |
||
| 215 | // } |
||
| 216 | |||
| 217 | |||
| 218 | // for (var i in obj[source]) { |
||
| 219 | |||
| 220 | var data = obj[source]; |
||
| 221 | |||
| 222 | console.log('source data', source, data); |
||
|
0 ignored issues
–
show
|
|||
| 223 | |||
| 224 | try { |
||
| 225 | exe = router[source](data); |
||
| 226 | console.log('apiunit.router[source] =', source, exe); |
||
| 227 | } catch (err) { |
||
| 228 | console.error('! apiunit.router[source]', source, err, obj); |
||
| 229 | } |
||
| 230 | // } |
||
| 231 | //console.log(target, type, value); |
||
| 232 | } |
||
| 233 | } else { |
||
| 234 | console.error('apiunit obj: is not object:', obj); |
||
| 235 | } |
||
| 236 | // console.log(target, type, value); |
||
| 237 | // } |
||
| 238 | console.log('apiunit.included:', apiunit.included); |
||
| 239 | |||
| 240 | //return output; |
||
| 241 | |||
| 242 | // for(i = 0; i < obj.length; i++) { |
||
| 243 | //out += '<a href="' + arr[i].data + '">' + arr[i].display + '</a><br>'; |
||
| 244 | //var router = new IncludeToId('home-plugins'); |
||
| 245 | // console.log(obj[i]); |
||
| 246 | // } |
||
| 247 | //document.getElementById("id01").innerHTML = out; |
||
| 248 | return this; |
||
| 249 | }; |
||
| 250 | |||
| 251 | |||
| 252 | this.fromJsonStringToObj = function (obj) { |
||
| 253 | if (typeof obj === 'string') { |
||
| 254 | try { |
||
| 255 | //const user = JSON.parse(data) |
||
| 256 | //console.log('fromJsonStringToObj before', obj); |
||
| 257 | obj = JSON.parse(obj); |
||
| 258 | console.log('fromJsonStringToObj after', obj); |
||
|
0 ignored issues
–
show
|
|||
| 259 | } catch (err) { |
||
| 260 | console.error('!fromJsonStringToObj błąd formatu JSON, sprawdź czy nie ma przecinka na koncu ostatniego elementu listy', err, obj); |
||
| 261 | } |
||
| 262 | } |
||
| 263 | return obj; |
||
| 264 | }; |
||
| 265 | |||
| 266 | |||
| 267 | }; |
||
| 268 | |||
| 269 | |||
| 270 | //var loadToHeader = new IncludeToId('home-plugins'); |
||
| 271 | /* |
||
| 272 | var setting = { |
||
| 273 | "id": "home-plugins", |
||
| 274 | "style": ["/visitor/newsletter/css/black.css"], |
||
| 275 | "script": ["/visitor/newsletter/js/foot.js"], |
||
| 276 | "html": ["/visitor/newsletter/plugin/create.html", "/visitor/newsletter/plugin/delete.html"], |
||
| 277 | }; |
||
| 278 | */ |
||
| 279 | // TODO : id / tag, class |
||
| 280 | // var setting = { |
||
| 281 | // "head": { |
||
| 282 | // "style": "/visitor/newsletter/css/black.css", |
||
| 283 | // "script": "/visitor/newsletter/js/foot.js" |
||
| 284 | // }, |
||
| 285 | // "home-plugins": { |
||
| 286 | // "html": [ |
||
| 287 | // "/visitor/home/plugin/messages.html", |
||
| 288 | // "/visitor/newsletter/plugin/create.html", |
||
| 289 | // "/visitor/newsletter/plugin/delete.html" |
||
| 290 | // ] |
||
| 291 | // }, |
||
| 292 | // }; |
||
| 293 | |||
| 294 | |||
| 295 | /* |
||
| 296 | if (source === 'docs') { |
||
| 297 | // for (var doc_name in url) { |
||
| 298 | // var doc_val = obj[source][i][doc_name]; |
||
| 299 | router.comment(i, url); |
||
| 300 | // } |
||
| 301 | } else if (source === 'image') { |
||
| 302 | if (!exist_in_apiunit) { |
||
| 303 | router.image(url); |
||
| 304 | apiunit.included.push(url); |
||
| 305 | } else { |
||
| 306 | console.error('!exist: ', url); |
||
| 307 | } |
||
| 308 | } else if (source === 'html') { |
||
| 309 | if (!exist_in_apiunit) { |
||
| 310 | router.html(url); |
||
| 311 | apiunit.included.push(url); |
||
| 312 | } else { |
||
| 313 | console.error('!exist: ', url); |
||
| 314 | } |
||
| 315 | } else if (source === 'script') { |
||
| 316 | if (!exist_in_apiunit) { |
||
| 317 | router.script(url); |
||
| 318 | apiunit.included.push(url); |
||
| 319 | } else { |
||
| 320 | console.error('!exist: ', url); |
||
| 321 | } |
||
| 322 | |||
| 323 | } else if (source === 'script-onload') { |
||
| 324 | if (!exist_in_apiunit) { |
||
| 325 | router.script_onload(url); |
||
| 326 | apiunit.included.push(url); |
||
| 327 | } else { |
||
| 328 | console.error('!exist: ', url); |
||
| 329 | } |
||
| 330 | |||
| 331 | } else if (source === 'script-delay') { |
||
| 332 | if (!exist_in_apiunit) { |
||
| 333 | router.script_delay(url); |
||
| 334 | apiunit.included.push(url); |
||
| 335 | } else { |
||
| 336 | console.error('!exist: ', url); |
||
| 337 | } |
||
| 338 | |||
| 339 | } else if (source === 'style') { |
||
| 340 | if (!exist_in_apiunit) { |
||
| 341 | router.style(url); |
||
| 342 | apiunit.included.push(url); |
||
| 343 | } else { |
||
| 344 | console.error('!exist: ', url); |
||
| 345 | } |
||
| 346 | |||
| 347 | } else if (source === 'style-onload') { |
||
| 348 | if (!exist_in_apiunit) { |
||
| 349 | router.style_onload(url); |
||
| 350 | apiunit.included.push(url); |
||
| 351 | } else { |
||
| 352 | console.error('!exist: ', url); |
||
| 353 | } |
||
| 354 | |||
| 355 | } else { |
||
| 356 | |||
| 357 | } |
||
| 358 | */ |
||
| 359 | |||
| 360 |