apollo-datasource-givefood

    1.0.2 • Public • Published

    apollo-datasource-givefood

    🥫 Apollo data source for GiveFood API.

    Donate to Food Banks | Find Nearby Food Banks

    Install

    npm i apollo-datasource-givefood

    Usage

    The simplest way to get going is by using the DataSource directly.

    import { GiveFoodDataSource } from 'apollo-datasource-givefood';
     
    const server = new ApolloServer({
      typeDefs,
      resolvers,
      dataSources: () => ({
        givefood: new GiveFoodDataSource(),
      }),
    });

    An alternative is subclassing GiveFoodDataSource.

    import { GiveFoodDataSource } from 'apollo-datasource-givefood';
     
    class FoodBanks extends GiveFoodDataSource {
      constructor() {
        super();
        this.baseURL = '...';
      }
     
      getFoodBankBySlug(slug) {
        return this.getBySlug(slug);
      }
    }

    API

    getAll

    Example

    const resolvers = {
      Query: {
        organisations: (_source, _args, { dataSoures: { givefood } }) =>
          givefood.getAll(),
      },
    };

    getBySlug(slug)

    Get a food bank by slug, and all their needs and outlets.

    Args

    • slug: A slug for an individual food bank. E.g. cramlington

    Example

    const resolvers = {
      Query: {
        foodbank: (_source, { slug }, { dataSoures: { givefood } }) =>
          givefood.getBySlug(slug),
      },
    };

    getByLatLng(lat, lng)

    Get food banks near the provided lat/lng. Returns needs, along with distance in miles.

    Args

    • lat (required): Latitude. E.g. 53.42
    • lng (required): Longitude. E.g. -2.55

    Example

    const resolvers = {
      Query: {
        search: (_source, { lat, lng }, { dataSoures: { givefood } }) =>
          givefood.getByLatLng(slug),
      },
    };

    getByAddress(address)

    It's recommended you don't use this. Use getByLatLng where possible.

    Use with caution, and expect slower response times.

    Args

    • address (required): The address, e.g. 66 The Headrow Leeds LS1 8EQ

    Example

    const resolvers = {
      Query: {
        search: (_source, { address }, { dataSoures: { givefood } }) =>
          givefood.getByAddress(address),
      },
    };

    Install

    npm i apollo-datasource-givefood

    DownloadsWeekly Downloads

    0

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    4.52 kB

    Total Files

    4

    Last publish

    Collaborators

    • notrab