Skip to content

Commit

Permalink
Set InputArgumentResolver to highest priority so it is matched first.…
Browse files Browse the repository at this point in the history
… This fixes issues with resolving MultipartFile with @InputArgument.
  • Loading branch information
srinivasankavitha committed Apr 16, 2024
1 parent 74542df commit b764b86
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,13 @@ public boolean uploadFile(@InputArgument FileUploadInput input, DataFetchingEnvi
return !parts.isEmpty();
}

@DgsData(parentType = "Mutation", field = "uploadTest")
public boolean uploadTest(@InputArgument MultipartFile input, DataFetchingEnvironment dfe) {
MultipartFile file = input;
if (file == null || file.isEmpty()) return false;
return true;
}

static class FileUploadInput {
private String description;
private List<MultipartFile> files;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type Mutation {
addRating(input: RatingInput):Rating
uploadFile(input: FileUploadInput!): Boolean
updateCookie(value: String): String
uploadTest(input: Upload!): Boolean
}

input RatingInput {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,13 @@ import com.netflix.graphql.dgs.internal.method.*
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.core.Ordered
import org.springframework.core.annotation.Order

@Configuration
open class DgsInputArgumentConfiguration {
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
open fun inputArgumentResolver(inputObjectMapper: InputObjectMapper): ArgumentResolver {
return InputArgumentResolver(inputObjectMapper)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ public boolean uploadFile(@InputArgument FileUploadInput input, DataFetchingEnvi
return !parts.isEmpty();
}

@DgsData(parentType = "Mutation", field = "uploadTest")
public boolean uploadTest(@InputArgument MultipartFile input, DataFetchingEnvironment dfe) {
MultipartFile file = input;
MultipartFile inputTest = (MultipartFile) dfe.getArgument("input");
if (file == null || file.isEmpty()) return false;
return true;
}

static class FileUploadInput {
private String description;
private List<MultipartFile> files;
Expand Down

0 comments on commit b764b86

Please sign in to comment.