1.0.1 • Published 7 years ago

picasa-rx v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

Build Status

picasa-rx

A picasa web album client written in ES2015 using RxJS observables.


Basic Usage

Installation

$ npm install picasa-rx

Getting photos

import * as Picasa from 'picasa-rx';

const accessToken = 'someAccessToken';

const options = {maxResults: 1};

Picasa.getPhotos(accessToken, options)
  .subscribe({
    next: (photosResponse) => console.log('received photo: ', photosResponse),
    error: (err) => console.log('error occurred: ', err),
    complete: () => console.log('complete')
  });

Getting albums

const accessToken = 'someAccessToken';

Picasa.getAlbums(accessToken, null)
  .subscribe({
    next: (album) => console.log('received album: ', album),
    error: (err) => console.log('error occurred: ', err),
    complete: () => console.log('complete')
  });

Upload a photo to a specific album

const accessToken = 'someAccessToken';
const albumId = 'someAlbumId';

let photo = __dirname + '/photos/steak.jpg';

let readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);

readFileAsObservable(photo)
  .mergeMap(
    (binary) => {
      const photoData = {
        title: Date.now(),
        summary: 'Awesome steak!',
        contentType: 'image/jpeg',
        binary: binary
      };
      return Picasa.postPhoto(accessToken, albumId, photoData)
    })
  .subscribe({
    next: (photoResponse) => {
      console.log('photoResponse: ', photoResponse)
    },
    error: (err) => console.log('error: ', err),
    complete: () => {
      console.log('completed');
    }
  });  

checkout the example folder for more details

Linting

  • ESLINT support is added to the project.
  • It's configured for ES2015 and inherited configurations from graphql/graphql-js.
  • Use npm run lint to lint your code and npm run lintfix to fix common issues.

Testing

  • Tests are located in the src/__test__ directory .
  • Then run npm test to test the code. (It'll lint the code as well).
  • You can also run npm run testonly to run tests without linting.

Kudos