Skip to content

Instantly share code, notes, and snippets.

@dwilkie
Created November 10, 2018 03:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dwilkie/17ba7fbc8d97a513906bc1ad85a9ac64 to your computer and use it in GitHub Desktop.
Save dwilkie/17ba7fbc8d97a513906bc1ad85a9ac64 to your computer and use it in GitHub Desktop.
SCFM contact import (Africa's Voices)
require "csv"
require "httparty"
DATA_FILE = "tmp/maap_numbers.csv".freeze
API_ENDPOINT = "https://scfm.somleng.org/api/contact_data".freeze
API_KEY = "REPLACE_ME_WITH_SCFM_API_KEY".freeze
def create_contact!(row)
response = HTTParty.post(
API_ENDPOINT,
body: {
msisdn: row.fetch("tel"),
metadata: {
"retailer" => row.fetch("retailer"),
"district" => row.fetch("district"),
"scope_id" => row.fetch("scope_id"),
"location" => row.fetch("recipient_location")
}
},
basic_auth: { username: API_KEY }
)
raise("Invalid Response #{response}") unless response.success?
end
csv_text = File.read(DATA_FILE)
csv = CSV.parse(csv_text, headers: true)
rows = []
csv.each do |row|
create_contact!(row)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment