|
87 | 87 | CLIENT_API_KEY=$(cat ${apiKeyPath}) |
88 | 88 | FIELD_OVERRIDES='${fieldOverridesJson}' |
89 | 89 |
|
| 90 | + echo "DEBUG: Field overrides:" |
| 91 | + echo "$FIELD_OVERRIDES" | ${pkgs.jq}/bin/jq '.' |
| 92 | +
|
90 | 93 | EXISTING_CLIENT=$(echo "$DOWNLOAD_CLIENTS" | ${pkgs.jq}/bin/jq -r '.[] | select(.name == "${clientName}") | @json' || echo "") |
91 | 94 |
|
92 | 95 | if [ -n "$EXISTING_CLIENT" ]; then |
93 | 96 | echo "Download client ${clientName} already exists, updating..." |
94 | 97 | CLIENT_ID=$(echo "$EXISTING_CLIENT" | ${pkgs.jq}/bin/jq -r '.id') |
95 | 98 |
|
| 99 | + echo "DEBUG: Existing client JSON:" |
| 100 | + echo "$EXISTING_CLIENT" | ${pkgs.jq}/bin/jq '.' |
| 101 | +
|
96 | 102 | UPDATED_CLIENT=$(apply_field_overrides "$EXISTING_CLIENT" "$CLIENT_API_KEY" "$FIELD_OVERRIDES") |
97 | 103 |
|
98 | | - ${pkgs.curl}/bin/curl -sSf -X PUT \ |
| 104 | + echo "DEBUG: Updated client JSON to send:" |
| 105 | + echo "$UPDATED_CLIENT" | ${pkgs.jq}/bin/jq '.' |
| 106 | +
|
| 107 | + RESPONSE=$(${pkgs.curl}/bin/curl -s -w "\n%{http_code}" -X PUT \ |
99 | 108 | -H "X-Api-Key: $API_KEY" \ |
100 | 109 | -H "Content-Type: application/json" \ |
101 | 110 | -d "$UPDATED_CLIENT" \ |
102 | | - "$BASE_URL/downloadclient/$CLIENT_ID" >/dev/null |
| 111 | + "$BASE_URL/downloadclient/$CLIENT_ID") |
| 112 | +
|
| 113 | + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) |
| 114 | + BODY=$(echo "$RESPONSE" | sed '$d') |
| 115 | +
|
| 116 | + if [ "$HTTP_CODE" != "202" ] && [ "$HTTP_CODE" != "200" ]; then |
| 117 | + echo "ERROR: API returned HTTP $HTTP_CODE" |
| 118 | + echo "Response body: $BODY" |
| 119 | + exit 1 |
| 120 | + fi |
103 | 121 |
|
104 | | - echo "Download client ${clientName} updated" |
| 122 | + echo "Download client ${clientName} updated (HTTP $HTTP_CODE)" |
105 | 123 | else |
106 | 124 | echo "Download client ${clientName} does not exist, creating..." |
107 | 125 |
|
108 | 126 | SCHEMA=$(echo "$SCHEMAS" | ${pkgs.jq}/bin/jq -r '.[] | select(.implementationName == "${implementationName}") | @json' || echo "") |
109 | 127 |
|
110 | 128 | if [ -z "$SCHEMA" ]; then |
111 | | - echo "Error: No schema found for download client implementationName ${implementationName}" |
| 129 | + echo "ERROR: No schema found for download client implementationName ${implementationName}" |
| 130 | + echo "Available schemas:" |
| 131 | + echo "$SCHEMAS" | ${pkgs.jq}/bin/jq -r '.[].implementationName' |
112 | 132 | exit 1 |
113 | 133 | fi |
114 | 134 |
|
| 135 | + echo "DEBUG: Schema JSON:" |
| 136 | + echo "$SCHEMA" | ${pkgs.jq}/bin/jq '.' |
| 137 | +
|
115 | 138 | NEW_CLIENT=$(apply_field_overrides "$SCHEMA" "$CLIENT_API_KEY" "$FIELD_OVERRIDES") |
116 | 139 |
|
117 | | - ${pkgs.curl}/bin/curl -sSf -X POST \ |
| 140 | + echo "DEBUG: New client JSON to send:" |
| 141 | + echo "$NEW_CLIENT" | ${pkgs.jq}/bin/jq '.' |
| 142 | +
|
| 143 | + RESPONSE=$(${pkgs.curl}/bin/curl -s -w "\n%{http_code}" -X POST \ |
118 | 144 | -H "X-Api-Key: $API_KEY" \ |
119 | 145 | -H "Content-Type: application/json" \ |
120 | 146 | -d "$NEW_CLIENT" \ |
121 | | - "$BASE_URL/downloadclient" >/dev/null |
| 147 | + "$BASE_URL/downloadclient") |
| 148 | +
|
| 149 | + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) |
| 150 | + BODY=$(echo "$RESPONSE" | sed '$d') |
| 151 | +
|
| 152 | + if [ "$HTTP_CODE" != "201" ] && [ "$HTTP_CODE" != "200" ]; then |
| 153 | + echo "ERROR: API returned HTTP $HTTP_CODE" |
| 154 | + echo "Response body: $BODY" |
| 155 | + exit 1 |
| 156 | + fi |
122 | 157 |
|
123 | | - echo "Download client ${clientName} created" |
| 158 | + echo "Download client ${clientName} created (HTTP $HTTP_CODE)" |
124 | 159 | fi |
125 | 160 | '') |
126 | 161 | serviceConfig.downloadClients} |
|
0 commit comments