npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iec-za

v0.1.6

Published

A Typescript module to retrieve data from the Independent Electoral Commission of South Africa's API

Downloads

118

Readme

IEC ZA

A Typescript module to retrieve data from the Independent Electoral Commission of South Africa's API.

Notes

  • This module is not affiliated with the Independent Electoral Commission of South Africa. It is an unofficial module created to make it easier to retrieve data from the IEC's API. See #IEC information for more information.
  • This module is a work in progress. It is not yet feature complete. It is focussed on National and Provincial Elections (NPE) data at the moment.
  • It is mostly a pass-through to the IEC's API. Some smarter features may be added in the future.

Installation

NPM

npm install iec-za

Environmental variables

Copy dotenv file to .env and fill in the required fields.

IEC_USERNAME="username"
IEC_PASSWORD="password"
IEC_URL="https://api.elections.org.za" # Optional

You can also set the environment variables directly.

export IEC_USERNAME="username"
export IEC_PASSWORD="password"

IEC information

Usage

import { IEC } from 'iec-za';

const iec = new IEC(); // or new IEC({ username: 'username', password: 'password', url: 'https://api.elections.org.za', version: 'v1' });
async function main() {
    const electoralEventTypes = await iec.electoralEventTypes(); // Retrieves the electoral event types
    console.log(electoralEventTypes);
}

Methods

For more information on the methods, please refer to the IEC API documentation

login(token?: string)

  • Logs in to the IEC API.
  • Returns a token.
  • Send a token to reuse an existing token.
  • Not strictly required as the other methods will log in automatically.

get(endpoing: string)

  • Low-level method to retrieve data from the IEC API.
  • Typically you would use the other methods instead.

electoralEventTypes()

  • Retrieves the electoral event types.
  • Returns an array of electoral event types.

electoralEvents(electionType)

  • Retrieves the electoral events.
  • Returns an array of electoral events.

delimitations(electoralEventId)

  • Retrieves the delimitations.
  • Returns an array of provinces.

delimitationsProvince(electoralEventId, provinceId)

  • Retrieves the delimitations for a province.
  • Returns an array of municipalities.

delimitationsMunicipality(electoralEventId, municipalityId)

  • Retrieves the delimitations for a municipality.
  • Returns an array of wards.

delimitationsWard(electoralEventId, wardId)

  • Retrieves the delimitations for a ward.
  • Returns an array of voting districts.

delimitationsVotingDistrict(electoralEventId, votingDistrictId)

  • Retrieves the delimitations for a voting district.
  • Returns an array of voting stations.

delimitationsLatLong(lat, long)

  • Retrieves the delimitations for a latitude and longitude.
  • Returns province, municipality, ward, and voting district.

contestingParties(electoralEventId)

  • Retrieves the contesting parties.
  • Returns an array of contesting parties.

electoralEventResultsProgress(electoralEventId)

  • Retrieves the electoral event results progress.
  • Returns an array of electoral event results progress.

electoralEventProgressProvince(electoralEventId, provinceId)

  • Retrieves the electoral event progress for a province.
  • Returns an array of electoral event progress for a province.

electoralEventProgressMunicipality(electoralEventId, municipalityId)

  • Retrieves the electoral event progress for a municipality.
  • Returns an array of electoral event progress for a municipality.

electoralEventProgressWard(electoralEventId, wardId)

  • Retrieves the electoral event progress for a ward.
  • Returns an array of electoral event progress for a ward.

NPEBallotResults(electoralEventId)

  • Retrieves the NPE ballot results.
  • Returns an array of NPE ballot results (PartyBallotResults).

NPEBallotResultsProvince(electoralEventId, provinceId)

  • Retrieves the NPE ballot results for a province.
  • Returns an array of NPE ballot results for a province.

NPEBallotResultsMunicipality(electoralEventId, municipalityId)

  • Retrieves the NPE ballot results for a municipality.
  • Returns an array of NPE ballot results for a municipality.

NPEBallotResultsVotingDistrict(electoralEventId, municipalityId, wardId, votingDistrictId)

  • Retrieves the NPE ballot results for a voting district.
  • Returns an array of NPE ballot results for a voting district.

NPESeatCalculationResults(electoralEventId)

  • Retrieves the NPE seat calculation results.
  • Returns an array of NPE seat calculation results by party (PartyResults).

NPESeatCalculationResultsProvince(electoralEventId, provinceId)

  • Retrieves the NPE seat calculation results for a province.
  • Returns an array of NPE seat calculation results for provincial legislature.

NPESeatAllocationResults(electoralEventId, partyId)

  • Retrieves the NPE seat allocation results for a party.
  • Returns an array of NPE seat allocation results for a party.

NPECandidates(electoralEventId, partyId)

  • Retrieves the NPE candidates for a party.
  • Returns an array of NPE candidates for a party.

License

MIT License

Copyright (c) 2024 Jason Norwood-Young

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.