forked from tangled.org/core
Monorepo for Tangled

appview: use typed request helper for RepoBranchesResponse

authored by oppi.li and committed by Tangled 1e47acbc 1ea33cf8

Changed files
+14 -119
appview
knotclient
+4 -58
appview/state/pull.go
··· 639 return 640 } 641 642 - resp, err := us.Branches(f.OwnerDid(), f.RepoName) 643 if err != nil { 644 log.Println("failed to reach knotserver", err) 645 - return 646 - } 647 - 648 - body, err := io.ReadAll(resp.Body) 649 - if err != nil { 650 - log.Printf("Error reading response body: %v", err) 651 - return 652 - } 653 - 654 - var result types.RepoBranchesResponse 655 - err = json.Unmarshal(body, &result) 656 - if err != nil { 657 - log.Println("failed to parse response:", err) 658 return 659 } 660 ··· 1162 return 1163 } 1164 1165 - resp, err := us.Branches(f.OwnerDid(), f.RepoName) 1166 if err != nil { 1167 log.Println("failed to reach knotserver", err) 1168 - return 1169 - } 1170 - 1171 - body, err := io.ReadAll(resp.Body) 1172 - if err != nil { 1173 - log.Printf("Error reading response body: %v", err) 1174 - return 1175 - } 1176 - 1177 - var result types.RepoBranchesResponse 1178 - err = json.Unmarshal(body, &result) 1179 - if err != nil { 1180 - log.Println("failed to parse response:", err) 1181 return 1182 } 1183 ··· 1245 return 1246 } 1247 1248 - sourceResp, err := sourceBranchesClient.Branches(user.Did, repo.Name) 1249 if err != nil { 1250 log.Println("failed to reach knotserver for source branches", err) 1251 - return 1252 - } 1253 - 1254 - sourceBody, err := io.ReadAll(sourceResp.Body) 1255 - if err != nil { 1256 - log.Println("failed to read source response body", err) 1257 - return 1258 - } 1259 - defer sourceResp.Body.Close() 1260 - 1261 - var sourceResult types.RepoBranchesResponse 1262 - err = json.Unmarshal(sourceBody, &sourceResult) 1263 - if err != nil { 1264 - log.Println("failed to parse source branches response:", err) 1265 return 1266 } 1267 ··· 1272 return 1273 } 1274 1275 - targetResp, err := targetBranchesClient.Branches(f.OwnerDid(), f.RepoName) 1276 if err != nil { 1277 log.Println("failed to reach knotserver for target branches", err) 1278 - return 1279 - } 1280 - 1281 - targetBody, err := io.ReadAll(targetResp.Body) 1282 - if err != nil { 1283 - log.Println("failed to read target response body", err) 1284 - return 1285 - } 1286 - defer targetResp.Body.Close() 1287 - 1288 - var targetResult types.RepoBranchesResponse 1289 - err = json.Unmarshal(targetBody, &targetResult) 1290 - if err != nil { 1291 - log.Println("failed to parse target branches response:", err) 1292 return 1293 } 1294
··· 639 return 640 } 641 642 + result, err := us.Branches(f.OwnerDid(), f.RepoName) 643 if err != nil { 644 log.Println("failed to reach knotserver", err) 645 return 646 } 647 ··· 1149 return 1150 } 1151 1152 + result, err := us.Branches(f.OwnerDid(), f.RepoName) 1153 if err != nil { 1154 log.Println("failed to reach knotserver", err) 1155 return 1156 } 1157 ··· 1219 return 1220 } 1221 1222 + sourceResult, err := sourceBranchesClient.Branches(user.Did, repo.Name) 1223 if err != nil { 1224 log.Println("failed to reach knotserver for source branches", err) 1225 return 1226 } 1227 ··· 1232 return 1233 } 1234 1235 + targetResult, err := targetBranchesClient.Branches(f.OwnerDid(), f.RepoName) 1236 if err != nil { 1237 log.Println("failed to reach knotserver for target branches", err) 1238 return 1239 } 1240
+8 -59
appview/state/repo.go
··· 179 return nil, err 180 } 181 182 - resp, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name) 183 if err != nil { 184 log.Println("failed to reach knotserver", err) 185 - return nil, err 186 - } 187 - 188 - body, err := io.ReadAll(resp.Body) 189 - if err != nil { 190 - log.Printf("Error reading forkResponse forkBody: %v", err) 191 - return nil, err 192 - } 193 - 194 - var result types.RepoBranchesResponse 195 - err = json.Unmarshal(body, &result) 196 - if err != nil { 197 - log.Println("failed to parse forkResponse:", err) 198 return nil, err 199 } 200 ··· 563 return 564 } 565 566 - resp, err := us.Branches(f.OwnerDid(), f.RepoName) 567 if err != nil { 568 log.Println("failed to reach knotserver", err) 569 return 570 } 571 572 - body, err := io.ReadAll(resp.Body) 573 - if err != nil { 574 - log.Printf("Error reading response body: %v", err) 575 - return 576 - } 577 - 578 - var result types.RepoBranchesResponse 579 - err = json.Unmarshal(body, &result) 580 - if err != nil { 581 - log.Println("failed to parse response:", err) 582 - return 583 - } 584 - 585 slices.SortFunc(result.Branches, func(a, b types.Branch) int { 586 if a.IsDefault { 587 return -1 ··· 603 s.pages.RepoBranches(w, pages.RepoBranchesParams{ 604 LoggedInUser: user, 605 RepoInfo: f.RepoInfo(s, user), 606 - RepoBranchesResponse: result, 607 }) 608 return 609 } ··· 980 return 981 } 982 983 - resp, err := us.Branches(f.OwnerDid(), f.RepoName) 984 if err != nil { 985 log.Println("failed to reach knotserver", err) 986 return 987 } 988 - defer resp.Body.Close() 989 - 990 - body, err := io.ReadAll(resp.Body) 991 - if err != nil { 992 - log.Printf("Error reading response body: %v", err) 993 - } 994 - 995 - var result types.RepoBranchesResponse 996 - err = json.Unmarshal(body, &result) 997 - if err != nil { 998 - log.Println("failed to parse response:", err) 999 - } 1000 1001 s.pages.RepoSettings(w, pages.RepoSettingsParams{ 1002 LoggedInUser: user, ··· 1136 if err != nil { 1137 log.Printf("failed to create unsigned client for %s: %v", knot, err) 1138 } else { 1139 - resp, err := us.Branches(f.OwnerDid(), f.RepoName) 1140 if err != nil { 1141 log.Printf("failed to get branches for %s/%s: %v", f.OwnerDid(), f.RepoName, err) 1142 - } else { 1143 - defer resp.Body.Close() 1144 - body, err := io.ReadAll(resp.Body) 1145 - if err != nil { 1146 - log.Printf("error reading branch response body: %v", err) 1147 - } else { 1148 - var branchesResp types.RepoBranchesResponse 1149 - if err := json.Unmarshal(body, &branchesResp); err != nil { 1150 - log.Printf("error parsing branch response: %v", err) 1151 - } else { 1152 - disableFork = false 1153 - } 1154 1155 - if len(branchesResp.Branches) == 0 { 1156 - disableFork = true 1157 - } 1158 - } 1159 } 1160 } 1161
··· 179 return nil, err 180 } 181 182 + result, err := us.Branches(repoInfo.Source.Did, repoInfo.Source.Name) 183 if err != nil { 184 log.Println("failed to reach knotserver", err) 185 return nil, err 186 } 187 ··· 550 return 551 } 552 553 + result, err := us.Branches(f.OwnerDid(), f.RepoName) 554 if err != nil { 555 log.Println("failed to reach knotserver", err) 556 return 557 } 558 559 slices.SortFunc(result.Branches, func(a, b types.Branch) int { 560 if a.IsDefault { 561 return -1 ··· 577 s.pages.RepoBranches(w, pages.RepoBranchesParams{ 578 LoggedInUser: user, 579 RepoInfo: f.RepoInfo(s, user), 580 + RepoBranchesResponse: *result, 581 }) 582 return 583 } ··· 954 return 955 } 956 957 + result, err := us.Branches(f.OwnerDid(), f.RepoName) 958 if err != nil { 959 log.Println("failed to reach knotserver", err) 960 return 961 } 962 963 s.pages.RepoSettings(w, pages.RepoSettingsParams{ 964 LoggedInUser: user, ··· 1098 if err != nil { 1099 log.Printf("failed to create unsigned client for %s: %v", knot, err) 1100 } else { 1101 + result, err := us.Branches(f.OwnerDid(), f.RepoName) 1102 if err != nil { 1103 log.Printf("failed to get branches for %s/%s: %v", f.OwnerDid(), f.RepoName, err) 1104 + } 1105 1106 + if len(result.Branches) == 0 { 1107 + disableFork = true 1108 } 1109 } 1110
+2 -2
knotclient/unsigned.go
··· 112 return do[types.RepoLogResponse](us, req) 113 } 114 115 - func (us *UnsignedClient) Branches(ownerDid, repoName string) (*http.Response, error) { 116 const ( 117 Method = "GET" 118 ) ··· 124 return nil, err 125 } 126 127 - return us.client.Do(req) 128 } 129 130 func (us *UnsignedClient) Tags(ownerDid, repoName string) (*types.RepoTagsResponse, error) {
··· 112 return do[types.RepoLogResponse](us, req) 113 } 114 115 + func (us *UnsignedClient) Branches(ownerDid, repoName string) (*types.RepoBranchesResponse, error) { 116 const ( 117 Method = "GET" 118 ) ··· 124 return nil, err 125 } 126 127 + return do[types.RepoBranchesResponse](us, req) 128 } 129 130 func (us *UnsignedClient) Tags(ownerDid, repoName string) (*types.RepoTagsResponse, error) {