2017-07-10 6 views
0

PlanConflictsというジャンクション・テーブルがあり、プランと競合の間に多対多の関係があります。ここで主キーなしのジャンクション・テーブルでDELETEまたはUPDATE可能

は私のモデル定義である:ここで

import { AllowNull, Column, DataType, ForeignKey, Model, Table } from "sequelize-typescript"; 
import Conflict from "./Conflict"; 
import Plan from "./Plan"; 

@Table({ tableName: "PlanConflicts" }) 
export default class PlanConflict extends Model<PlanConflict> { 
    @AllowNull(false) 
    @ForeignKey(() => Plan) 
    @Column(DataType.INTEGER) 
    public planId: number; 

    @AllowNull(false) 
    @ForeignKey(() => Conflict) 
    @Column(DataType.INTEGER) 
    public conflictId: number; 
} 

は、エピローグを使用して、この表のためのエンドポイントを生成するための私の試みです:

epilogue.resource({ 
    model: PlanConflict, 
    endpoints: ["/plan-conflicts", "/plan-conflicts/:id"], 
    pagination: false, 
    search: [ 
     { 
      operator: "$eq", 
      param: "plan-id", 
      attributes: [ "planId" ] 
     }, 
     { 
      operator: "$eq", 
      param: "conflict-id", 
      attributes: [ "conflictId" ] 
     } 
    ] 
}); 

私は新しい競合を作成することができるよ、と私ができますhttp://localhost:3000/plan-conflicts?plan-id=9&conflict-id=1という形式のURLを使用してリスティングを取得しますが、どのように更新または削除を実行するかわかりません。エピローグの検索機能は、リスティングにのみ使用できます。

したがって、プライマリ・キーを持たないジャンクション・テーブルのアイテムを更新または削除できるかどうかを確認したい場合は、その方法を知りたいと思います。

答えて

0

数時間の休息の後、私はちょうど.../:idから.../:planId/:conflictIdに終点をカスタマイズできるかもしれないと私に思い出させました。

マイリソースコールが今のように単純化されています

epilogue.resource({ 
    model: PlanConflict, 
    endpoints: ["/plan-conflicts", "/plan-conflicts/:planId/:conflictId"], 
    pagination: false, 
}); 

そして、ここで例のURLです:http://localhost:3000/plan-conflicts/9/1

関連する問題