title: TypeORM: how to call mutation from another mutation within the resolver
body: <p>How do I call a mutation from another mutation within the same resolver in TypeORM if the function requires <code>context</code> as an argument?</p>
  <p>Something like:</p>
  <pre><code>@Mutation()
  async addNote(
      @Ctx() { req }: Context,
      @Arg('text', _type =&gt; string, { nullable: true }) text: string
    ) {
    // ...
    }
  
  @Mutation()
  async updateNote(
      @Ctx() { req }: Context,
      @Arg('text', _type =&gt; string, { nullable: true }) text: string
      @Arg('noteId', _type =&gt; Int, { nullable: true }) noteId: Int    
    ) {
    // ...
    if (noteDoesNotExist) {
      this.addNote(/* context? */, text) // &lt;- here
    }
    // ...
  }
  </code></pre>
  <p>Background: I'm trying to implement <code>upsert</code> (update mutation that creates element if it does not exist) but all the upsert implementations or the <code>.save()</code> methods I'm coming across seem to be mere workarounds full of trade-offs. The above seems to be the easiest I can do with my existing code while I find a cleaner solution.</p>
  <p>Is it something I should not be doing at all?</p>