dragndrop_hld/TEST_RESULTS.md
alex f81dcccbb6 FULL WORKING V 1.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-22 16:15:50 -07:00

5.7 KiB

Upload Test Results - Map ID 16950

Test Date: 2025-12-09 Test Type: First 10 records per shapefile layer Map ID: 16950

Summary

Layer Records Attempted Records Uploaded Status
poles.shp 10 10 SUCCESS
segments.shp 10 10 SUCCESS
sites.shp 10 10 SUCCESS
access_points.shp 10 0 FAILED
network_elements.shp 10 0 FAILED
splicing.shp 10 0 FAILED
cabinet_boundaries.shp 3 0 FAILED
cables.shp 3 0 FAILED
parcels.shp 3 0 FAILED
permits.shp 10 0 FAILED

Overall: 30 out of 59 records uploaded successfully (51%)

Successful Uploads

Poles (10/10)

  • All records uploaded successfully
  • Field mapping working correctly
  • No errors

Segments (10/10)

  • All records uploaded successfully
  • TypeId mapping working correctly
  • No errors

Sites (10/10)

  • All records uploaded successfully
  • Address fields mapping correctly
  • State lookup working
  • No errors

Failed Uploads

Access Points (0/10)

Error: API returns 500 error

PHP Warning: Undefined array key "isLocked"

Root Cause: The API expects locked field, but the uploader is sending isLocked

Fix Required: Change field name in _upload_access_points() method

# Current (wrong):
ap_data = {
    "isLocked": 0  # ❌ Wrong field name
}

# Should be:
ap_data = {
    "locked": 0  # ✅ Correct field name
}

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:407


Network Elements (0/10)

Error: Silent failure (returns 500 error but not logged in debug output)

Root Cause: API likely rejecting due to missing or incorrect field

Status: Code was recently updated with correct typeId mapping - may need testing with debug output enabled

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:452-511


Splicing (0/10)

Error: Silent failure (returns 500 error but not logged in debug output)

Root Cause: API likely rejecting due to missing or incorrect field

Status: Code was recently updated with correct typeId mapping - may need testing with debug output enabled

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:537-598


Cabinet Boundaries (0/3)

Error: API returns 500 error

Database Exception: Field 'metric' doesn't have a default value

Root Cause: The mapobject table requires a metric field that's not being provided

Fix Required: Add metric field to info object data

info_data = {
    "mapProjectId": int(map_id),
    "name": str(row.get('Name', f'Cabinet-Boundary-{idx}')),
    "mapinfoobjecttypeId": 3,
    "data": data,
    "color": "#ffffff",
    "alpha": "0.40",
    "metric": 0  # ✅ Add this required field
}

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:549-563


Cables (0/3)

Error: API returns 500 error

Database Exception: Field 'metric' doesn't have a default value

Root Cause: Same as cabinet_boundaries - missing metric field

Fix Required: Add metric field to info object data

info_data = {
    "mapProjectId": int(map_id),
    "name": str(row.get('Name', f'Cable-{idx}')),
    "mapinfoobjecttypeId": 2,
    "data": data,
    "color": "#ffffff",
    "alpha": "1.00",
    "metric": 0  # ✅ Add this required field
}

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:591-598


Parcels (0/3)

Error: API returns 500 error

Database Exception: Field 'metric' doesn't have a default value

Root Cause: Same as cabinet_boundaries - missing metric field

Fix Required: Add metric field to info object data

info_data = {
    "mapProjectId": int(map_id),
    "name": str(row.get('Name', f'Parcel-{idx}')),
    "mapinfoobjecttypeId": 3,
    "data": data,
    "color": "#ffffff",
    "alpha": "0.40",
    "objectgroup": str(row['Group 1']),
    "objectgroup2": str(row['Group 2']),
    "metric": 0  # ✅ Add this required field
}

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:634-641


Permits (0/10)

Error: API returns 422 validation error

Permit Status cannot be blank.
Permit Entity Type cannot be blank.
Permit ULR Type cannot be blank.

Root Cause: Missing required fields in permit data

Fix Required: Add required fields with default values

permit_data = {
    "mapProjectId": int(map_id),
    "name": str(name),
    "poly": poly,
    "mappermitstatusId": 1,        # ✅ Add: Default to status 1
    "mappermitentitytypeId": 1,    # ✅ Add: Default to entity type 1
    "mappermitulrtypeId": 1        # ✅ Add: Default to ULR type 1
}

Note: Need to research the correct default values for these IDs from the API references.

File: /home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:699-703

Action Items

  1. CRITICAL - Fix Access Points

    • Change isLocked to locked field name
    • Should result in immediate success
  2. HIGH - Fix Info Objects (Cabinet Boundaries, Cables, Parcels)

    • Add metric: 0 field to all info object creations
    • Should result in immediate success
  3. HIGH - Fix Permits

    • Research correct reference IDs for permit types
    • Add required fields with appropriate defaults
  4. MEDIUM - Debug Network Elements & Splicing

    • Add debug output (like access_points and sites have)
    • Verify typeId mapping is working
    • Check for any other missing required fields

Next Steps

  1. Apply the fixes identified above
  2. Re-run test with same data to map 16950
  3. Verify all layers upload successfully
  4. Document any additional issues found