Comments (7)
I didnt understand your question. I'd appreciate if you take your time re-writing it :) If it'd be race called 'who is the fastests to submit issue', you'd win ;) )
from typegql.
basically:
@ObjectType()
class User {
@Field() name: string
@Field() price: number
@Field() // here I would use the MutationField
setSuperUser(): User {
// do some actual mutation, not important for this demonstration
return this
}
}
@Schema()
class SuperSchema {
@Mutation()
createUser(name: string, price: number): User {
const user = new User()
return user
}
@Query()
@Mutation()
getUserById(id: number): User {
return new User()
}
}
const schema = compileSchema({ roots: [SuperSchema2] })
console.log('schema: ', printSchema(schema))
now the compiled schema looks like:
type Mutation {
createUser(name: String!, price: Float!): User
getUserById(id: Float!): User
}
type Query {
getUserById(id: Float!): User
}
type User {
name: String
price: Float
setSuperUser: User
}
Now anyone can just call this query:
{
getUserById(1) { setSuperUser {name}}
}
but I would like them to only be able to call that via a mutation like
mutation {
getUserById(1) { setSuperUser {name}}
}
currently they can call it like a query and mutation both.
from typegql.
First of all, I think getUserById
should be inside query, not inside mutation. Mutations are meant to mutate the state of the app.
Anyway, I see you're using
@Query()
@Mutation()
getUserById(id: number): User {
return new User()
}
You're using both Mutation
and Query
decorator - that's the reason it's bresent in both. If you'd leave only @Mutation
- it'll not be present in query
anymore.
from typegql.
Sorry for not responding sooner. The thing is I have a User
class. This class has Field
s which are reading so they are gql queries, but it also has Field
which are mutating the User
instance.
That is why I have both Query
and Mutation
decorators there.
If I only put Query
there, I can't call
mutation {
getUserById(1) { setSuperUser {name}}
}
from typegql.
Having field that is mutating is rather not good idea.
from typegql.
why?
from typegql.
Could you describe in details your desired schema?
from typegql.
Related Issues (20)
- fields defined on a third level and farther of function prototype chain are not registered into schema HOT 2
- [question] returning an instance of a class HOT 4
- make InputField nullable by default HOT 2
- graphql-tools 3.0.2 HOT 2
- Documentation: Client Interfaces HOT 10
- allow to register Arg at runtime dynamically HOT 7
- Example of having resolvers in separate files HOT 4
- Falsy values are being treated as `null`
- Differences from type-graphql HOT 2
- feature request: browser shim
- default params break the compileFieldArgs function
- support Date type by default HOT 4
- mixin support HOT 4
- pls update graphql dependency to latest v14 HOT 1
- Can I somehow pass context directly to resolver? HOT 1
- Pagination Count in Query HOT 1
- Question: Why is the Arg decorator not nullable by default? HOT 2
- Arguments To Query Type Not Exposed/Compiled? HOT 2
- How to use mutation with array? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from typegql.