-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[#1464] Push mobile submission at the same time
- Loading branch information
1 parent
42097ba
commit f1cff8e
Showing
3 changed files
with
237 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
sync.log | ||
/tmp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
{ | ||
"id": 1440, | ||
"datapoint_name": "Gaturi - Father - 01", | ||
"administration": 61380, | ||
"uuid": "b0acba11-8064-4cb0-b1f2-59d3797ecae1", | ||
"geolocation": [-7.8360744, 110.3311868], | ||
"submission_type": 1, | ||
"answers": { | ||
"1701810579091": "G1 Functional toilet with privacy", | ||
"1702284734752": "G1 Toilet use by all household members", | ||
"1702281084786": "G1 Flyproof toilet", | ||
"1702282119933": "G1 Clean toilet", | ||
"1711434672": "G1 Use of flyproof and clean toilet", | ||
"1702285101196": "G1 Some household members do not use their own toilet", | ||
"1702283171680": "G2 Durable toilet", | ||
"1702283955461": "G2 Toilet with safe containment", | ||
"1711436502": "G2 Durable toilet with safe containment", | ||
"1702285668136": "G1 Inadequate sanitation services", | ||
"1702287053503": "G1 Handwashing facility with soap and water", | ||
"1702288599133": "G1 Some critical handwashing times NOT mentioned", | ||
"1702287685048": "G3 Permanent handwashing services", | ||
"1702289546185": "G1 No exposed human excreta in compound", | ||
"1702289725502": "G1 Safely managed child excreta and diapers", | ||
"1702295289084": "G2 Clean and safely stored food", | ||
"1702295769122": "G2 Clean and safely stored kitchen utensils", | ||
"1702296110410": "G1 Milk containers not adequately washed, or not safely stored", | ||
"1712643759": "G1", | ||
"1702296406679": "G2 Safe management of drinking water", | ||
"1702296839468": "G2 Safe management of water points", | ||
"1712644066": "G2", | ||
"1702297046194": "G1 Some animal wastes visible", | ||
"1702297533085": "G1 Inadequate management of animal wastes", | ||
"1702297797962": "G1 Inadequate separation of animals from under-5 children", | ||
"1712644167": "G1", | ||
"1702298080560": "G3 Safe management of liquid wastes", | ||
"1702298318702": "G3 Safe management of solid wastes", | ||
"1702298863458": "G3 Good personal hygiene", | ||
"1702298602672": "G3 Good vector control", | ||
"1702302232732": "G3 Good nutrition and protection", | ||
"1712644350": "G3", | ||
"1702301820095": "G3 Good menstrual hygiene", | ||
"1712644557": "G3", | ||
"1702302427536": "G3 Good nutrition and protection", | ||
"1702302041022": "G3 Good nutrition and protection", | ||
"1702302507816": "G3 Good nutrition and protection", | ||
"1712644710": "G3", | ||
"1702299714872": "G3 Malaria-safe home", | ||
"1712657830": "G2", | ||
"1699432887212": ["g2_cleanwashed_produce_raw_and_cooked_food"], | ||
"1699433027913": ["g2_covered_food_storage"], | ||
"1699433058652": ["g2_storage_off_ground"], | ||
"1699433108344": ["g2_cleanwashed_utensils"], | ||
"1699433162828": ["g2_covered_utensil_storage"], | ||
"1699433205793": ["g2_storage_off_ground"], | ||
"1699433455365": ["g2_cleanwashed_water_containers"], | ||
"1699433503692": ["g2_adequate_quality_at_collection_point"], | ||
"1699433564057": ["g2_clean_covered_drinking_water_storage"], | ||
"1699433637971": ["g2_water_containers_with_spigots_or_taps"], | ||
"1699433719018": ["g2_clean_water_points"], | ||
"1699433765217": ["g2_well_protected_water_points"], | ||
"1699433833227": ["g2_no_householf_water_point"], | ||
"1699434438966": ["g3_adequate_wastewater_soakpit_or_drainage"], | ||
"1699434488410": ["g3_adequate_stormwater_drainage"], | ||
"1699434553677": ["g3_clean_compound_with_no_visible_solid_wastes"], | ||
"1699434636655": ["g3_solid_waste_storage_or_disposal_system"], | ||
"1699434771449": ["g3_no_visible_standing_water"], | ||
"1699434939105": ["g3_clean_faces"], | ||
"1699434983278": ["g3_clean_hands"], | ||
"1699435026311": ["g3_clean_and_private_washing_place"], | ||
"1699435088758": ["g3_safe_disposal_site"], | ||
"1699435154797": ["g3_appropriate_materials_are_available"], | ||
"1699435207476": ["g3_all_children_fully_immunized"], | ||
"1699435265962": ["g3_all_vitamin_a_supplements_received_in_last_6_months"], | ||
"1699435329279": ["g3_exclusive_breastfeeding_for_under_6month_children"], | ||
"1699435397728": ["g3_nutritious_diet_for_all_6_month_to_2_year_children"], | ||
"1699435455818": ["g3_malariasafe_home"], | ||
"1699435526190": ["g3_not_in_sthendemic_area"], | ||
"1699354220734": ["new"], | ||
"1699354849382": 61380.0, | ||
"1702914753957": [-7.8360744, 110.3311868], | ||
"1702914803732": "b0acba11-8064-4cb0-b1f2-59d3797ecae1", | ||
"1699417958748": ["hh_head"], | ||
"1699419048095": "Gaturi", | ||
"1699419165632": "Father", | ||
"1699419372643": ["male"], | ||
"1699419815660": 35.0, | ||
"1699419861172": 1.0, | ||
"1699419951523": 0.0, | ||
"1712229529": "1", | ||
"1699419994672": 1.0, | ||
"1699420051321": 0.0, | ||
"1699420070055": 1.0, | ||
"1699420103720": 1.0, | ||
"1699420121397": 0.0, | ||
"1699420137191": 0.0, | ||
"1703265705460": "3", | ||
"1703265879204": "1", | ||
"1712234331": "1", | ||
"1712234349": "4", | ||
"1699420621840": ["other_hh_not_in_atrisk_category"], | ||
"1710829091": ["no_animals_kept_in_household_compound"], | ||
"1703073469466": "01", | ||
"1699422286091": ["g1_toilet_observed"], | ||
"1703066902325": "https://rtmis.akvotest.org/images/photo_1703066902325_1-c46fec21-216d-47f4-92aa-4071f405225e.jpeg", | ||
"1703066989526": "https://rtmis.akvotest.org/images/photo_1703066989526_1-c24fd673-6116-4e26-b805-fdfde89cd936.jpeg", | ||
"1699423357200": ["g1_fully_functional_toilet"], | ||
"1699423571454": ["g1_good_toilet_privacy"], | ||
"1699423696720": ["g1_dry_latrine_with_drophole"], | ||
"1699423946170": ["g1_single_latrine_pit_under_toilet"], | ||
"1699424375968": ["g1_tightfitting_drophole_cover_in_place"], | ||
"1699425852809": [ | ||
"g1_clean_minor_traces_of_faeces_or_soiled_materials_easily_cleaned" | ||
], | ||
"1699426059842": ["g1_clean_minor_traces_of_faeces_easily_cleaned"], | ||
"1699427405024": ["g2_concrete_slab"], | ||
"1699427743413": ["g2_single_pit_not_yet_full_no_surface_outflows"], | ||
"1702282796765": ["g2_low_risk_of_groundwater_contamination"], | ||
"1699428072669": ["g1_use_own_toilet"], | ||
"1699428400205": ["g1_toilet_notshared_less_than_1015_users"], | ||
"1710742384": 0.0, | ||
"1699428351326": ["g1_all_use_toilet"], | ||
"1699428535663": ["hh_member_1_g2_use_own_toilet_not_shared"], | ||
"1711626271": ["hh_member_1_g2_use_own_toilet_not_shared"], | ||
"1711626326": ["hh_member_1_g2_use_own_toilet_not_shared"], | ||
"1711626360": ["hh_member_1_g2_use_own_toilet_not_shared"], | ||
"1699427574765": ["g2_containment_unlined_in_stable_soil"], | ||
"1699427885744": ["g2_never"], | ||
"1699428661689": ["g3_never_emptied_first_pit_no_intention_to_empty"], | ||
"1699429162796": ["g1_handwashing_facility_by_toilet"], | ||
"1710840898": "https://rtmis.akvotest.org/images/photo_1710840898_1-d400ffe1-334d-4a26-8941-03f2563b32ed.jpeg", | ||
"1710753585": ["g1_fully_functional_handwashing_facility"], | ||
"1699430427692": ["g1_water_available"], | ||
"1699430472221": ["g1_solid_liquid_or_powder_soap_available"], | ||
"1699430580239": [ | ||
"g3_permanent_handwashing_station_with_adequate_water_storage" | ||
], | ||
"1699430671868": ["g3_closed_water_storage_container_with_tap"], | ||
"1699430761393": ["g3_safe_collection_and_disposal_of_washing_water"], | ||
"1699430839676": ["g2_after_toilet_use"], | ||
"1699431035188": ["g2_before_eating_food_preparation_and_feeding_children"], | ||
"1699431983680": [ | ||
"g2_after_cleaning_or_handling_infant_faeces_or_after_washing_or_disposal_of_diapers" | ||
], | ||
"1699432663952": [ | ||
"g1_no_visible_od_or_human_excreta_child_or_adult_in_compound" | ||
], | ||
"1699432130951": ["g1_safely_managed_child_faeces_buried"], | ||
"1699432802923": ["g1_disposable_diaper_buried_in_compound"], | ||
"16994260598422": ["yes"], | ||
"16994260598423": ["yes"], | ||
"1703299101191": "G1 Open Defecation Free", | ||
"1703299101192": "G3 Clean and Healthy", | ||
"1712658383": "G2", | ||
"1715238587": "G0" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#!/bin/bash | ||
|
||
if [ "$#" -ne 1 ]; then | ||
echo "Usage: $0 <auth_code>" | ||
exit 1 | ||
fi | ||
|
||
get_auth_token() { | ||
curl -s -X 'POST' \ | ||
'https://rtmis.akvotest.org/api/v1/device/auth' \ | ||
-H 'accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-H 'X-CSRFTOKEN: 8inxCl7WRqWt2enWNQaxpym2N7hN9StDGiccC6YofLz9AC6ORiraiHyuLYYCieTP' \ | ||
-d '{"code": "$1"}' | jq -r '.syncToken' | ||
} | ||
|
||
URL="https://rtmis.akvotest.org/api/v1/device/sync" | ||
MOBILE_AUTH_TOKEN=$(get_auth_token $1) | ||
SCHEDULE_TIME="now + 1 minute" | ||
touch sync.log | ||
LOG_FILE="./sync.log" | ||
|
||
# jq function to generate a random UUID | ||
generate_uuid() { | ||
cat /proc/sys/kernel/random/uuid | ||
} | ||
|
||
# Create ./tmp folder if it doesn't exist | ||
mkdir -p ./tmp | ||
|
||
# Function to modify the JSON file | ||
#!/usr/bin/env bash | ||
|
||
# The sync endpoint | ||
push_schedule() { | ||
# the payload | ||
DATA=$(jq . "./tmp/$1.json") | ||
echo "curl -s -X 'POST' \ | ||
'$URL' \ | ||
-H 'accept: application/json' \ | ||
-H 'Content-Type: application/json' \ | ||
-H 'Authorization: Bearer $MOBILE_AUTH_TOKEN' \ | ||
-d '$DATA' >> $LOG_FILE 2>&1; echo -e '\n'" | at "$SCHEDULE_TIME" | ||
} | ||
|
||
push_data() { | ||
local infile=$1 | ||
uuid=$(generate_uuid) | ||
# add leading zero to the index | ||
index=$(printf "%04d" "$2") | ||
local outfile="./tmp/$index.json" | ||
|
||
# Modify the JSON object and remove id field | ||
jq --arg new_uuid "${uuid}" --arg index "$index" ' | ||
del(.id) | | ||
del(.datapoint_name) | | ||
del(.uuid) | | ||
del(.administration) | | ||
.submittedAt = "2024-05-16T04:42:54.074Z" | | ||
.submitter = "Gaturi Gakui Enumerator" | | ||
.geo = .geolocation | | ||
.duration = 10 | | ||
.formId = "1699353915355" | | ||
.name = "Gaturi - Father - " + $index | | ||
.answers["1702914803732"] = $new_uuid | | ||
.answers["1703073469466"] = $index | | ||
del(.geolocation) | ||
' "$infile" >>"$outfile" | ||
echo "Modified JSON objects are stored in $outfile" | ||
push_schedule "$index" | ||
} | ||
|
||
# Input JSON file | ||
input_file="./household_submission.json" | ||
|
||
# Repeat 10 times | ||
for i in $(seq 2 10); do | ||
push_data "$input_file" "$i" | ||
done |