(c *gin.Context, relayMode int)
| 183 | } |
| 184 | |
| 185 | func RelayTaskFetch(c *gin.Context, relayMode int) (taskResp *dto.TaskError) { |
| 186 | respBuilder, ok := fetchRespBuilders[relayMode] |
| 187 | if !ok { |
| 188 | taskResp = service.TaskErrorWrapperLocal(errors.New("invalid_relay_mode"), "invalid_relay_mode", http.StatusBadRequest) |
| 189 | } |
| 190 | |
| 191 | respBody, taskErr := respBuilder(c) |
| 192 | if taskErr != nil { |
| 193 | return taskErr |
| 194 | } |
| 195 | |
| 196 | c.Writer.Header().Set("Content-Type", "application/json") |
| 197 | _, err := io.Copy(c.Writer, bytes.NewBuffer(respBody)) |
| 198 | if err != nil { |
| 199 | taskResp = service.TaskErrorWrapper(err, "copy_response_body_failed", http.StatusInternalServerError) |
| 200 | return |
| 201 | } |
| 202 | return |
| 203 | } |
| 204 | |
| 205 | func sunoFetchRespBodyBuilder(c *gin.Context) (respBody []byte, taskResp *dto.TaskError) { |
| 206 | userId := c.GetInt("id") |
no test coverage detected