addSource$(url) { const validator = validateAddSource(url); if (!validator.isValid) return Observable.throw({message: validator.message}); return this._server.emitAction$("playlist:add", {url}); }
addSourceFromUrl$(url){ const validator = validateAddSource(url); if (!validator.isValid) return validator.throw$(); return new Observable(observer => { let getSource$ = null; for(let service of this._services){ getSource$ = service.process$(url); if(getSource$) break; } if(!getSource$) return fail(`No service accepted url ${url}`); getSource$ .do(source => this.addSource(source)) .subscribe(observer); }); }