示例#1
0
 login(): Observable<boolean> {
   Observable.bindCallback(
     PDK.login.bind(PDK, {scope: 'read_public, write_public, read_relationships'}),
     (response: any) => response.session)()
     .subscribe(() => this.broadcastLoggedIn());
   return this.loggedIn$;
 }
示例#2
0
  repin(pin: any, board: any): Observable<Object> {
    let url = board.url.split('/').slice(-3, -1).join('/');

    let data = {
      board: url,
      note: pin.note,
      link: pin.link,
      image_url: pin.image.original.url
    };
    return Observable.bindCallback(
      PDK.request.bind(PDK, '/pins/', 'POST', data),
      (response: any) => response.data
    )();
  }
 private performAjaxRequest(url, requestData): Observable<any> {
     return Observable.bindCallback((onSuccess: any) => {
         $.ajax({
             url: url,
             type: 'POST',
             data: requestData,
             cache: false,
             contentType: false,
             processData: false,
             success: (data, textStatus, jqXHR) => onSuccess(JSON.parse(data)),
             error: function(jqXHR, textStatus, errorThrown)
             {
                 console.log('ERRORS: ' + textStatus);
                 onSuccess(textStatus);
             }
         });
     })();
 }
示例#4
0
            const capabilities = {
                type: 'ClientCapabilities',
                requiresBotState: true,
                supportsTts: true,
                supportsListening: true
                // Todo: consider implementing acknowledgesTts: true
            };
            (activity as any).entities = (activity as any).entities == null ? [capabilities] :  [...(activity as any).entities, capabilities];
        }

        return state.connection.botConnection.postActivity(activity)
        .map(id => ({ type: 'Send_Message_Succeed', clientActivityId, id } as HistoryAction))
        .catch(error => Observable.of({ type: 'Send_Message_Fail', clientActivityId } as HistoryAction));
    });

const speakObservable = Observable.bindCallback<string, string, {}, {}>(Speech.SpeechSynthesizer.speak);

const speakSSMLEpic: Epic<ChatActions, ChatState> = (action$, store) =>
    action$.ofType('Speak_SSML')
    .filter(action => action.ssml )
    .mergeMap(action => {

        let onSpeakingStarted = null;
        let onSpeakingFinished = () => nullAction;
        if (action.autoListenAfterSpeak) {
            onSpeakingStarted = () => Speech.SpeechRecognizer.warmup() ;
            onSpeakingFinished = () => ({ type: 'Listening_Starting' } as ShellAction);
        }

        const call$ = speakObservable(action.ssml, action.locale, onSpeakingStarted);
        return call$.map(onSpeakingFinished)
示例#5
0
 pins(board: any): Observable<Object> {
   return Observable.bindCallback(
     PDK.request.bind(PDK, `/boards/${board.id}/pins/`, {fields: 'id,note,link,image'}),
     (response: any) => response.data
   )().concatAll();
 }
示例#6
0
 followedBoards(): Observable<any[]> {
   return Observable.bindCallback(
     PDK.me.bind(PDK, 'following/boards', {fields:'id,description,name,image'}),
     (response: any) => response.data
   )();
 }
示例#7
0
 logout(): Observable<boolean> {
   Observable.bindCallback(PDK.logout.bind(PDK))()
   .subscribe(() => this.broadcastLoggedIn());
   return this.loggedIn$;
 }
示例#8
0
 snap(): Observable<string> {
   return Observable.bindCallback(
     Webcam.snap.bind(Webcam),
     (dataUri: string) => dataUri.replace('data:image/jpeg;base64,', '')
   )();
 }
import { Observable } from 'rxjs/Observable';
// Webpack doesn't bundle correctly without this. TODO: figure out why & fix.
import 'rxjs/add/observable/bindNodeCallback';
import 'rxjs/add/observable/bindCallback';

export interface SocketOptions {
  event: string;
  payload?: any;
}

const emit = Observable.bindNodeCallback((options: SocketOptions, callback: (err: Error, data: any) => void) => {
  window.socket.emit(options.event, options.payload || {}, callback);
});

const on = Observable.bindCallback((options: SocketOptions, callback: (data: any) => void) => {
  window.socket.on(options.event, callback);
});

export const Socket = {
  emit,
  on
};

export interface HttpOptions {
  url: string;
  payload?: any;
}

const get = Observable.bindNodeCallback((url: string, callback: (data: any) => void) => {
  window.ajaxify.loadData(url, callback);
});