diff --git a/doc/api/schemas/_mapping.json b/doc/api/schemas/_mapping.json index 5a3b06a6..8789c5ec 100644 --- a/doc/api/schemas/_mapping.json +++ b/doc/api/schemas/_mapping.json @@ -27,8 +27,14 @@ "map_id": { "$ref": "_id.json" }, + "map": { + "$ref": "_map.json" + }, "user_id": { "$ref": "_id.json" + }, + "user": { + "$ref": "_user.json" } }, "required": [ @@ -37,5 +43,19 @@ "mappable_type", "created_at", "updated_at" + ], + "allOf": [ + { + "oneOf": [ + { "required": [ "map_id" ] }, + { "required": [ "map" ] } + ] + }, + { + "oneOf": [ + { "required": [ "user_id" ] }, + { "required": [ "user" ] } + ] + } ] } diff --git a/doc/api/schemas/_synapse.json b/doc/api/schemas/_synapse.json index dea238e2..6c323225 100644 --- a/doc/api/schemas/_synapse.json +++ b/doc/api/schemas/_synapse.json @@ -24,11 +24,20 @@ "topic1_id": { "$ref": "_id.json" }, + "topic1": { + "$ref": "_topic.json" + }, "topic2_id": { "$ref": "_id.json" }, + "topic2": { + "$ref": "_topic.json" + }, "user_id": { "$ref": "_id.json" + }, + "user": { + "$ref": "_user.json" } }, "required": [ @@ -38,5 +47,25 @@ "permission", "created_at", "updated_at" + ], + "allOf": [ + { + "oneOf": [ + { "required": [ "topic1_id" ] }, + { "required": [ "topic1" ] } + ] + }, + { + "oneOf": [ + { "required": [ "topic2_id" ] }, + { "required": [ "topic2" ] } + ] + }, + { + "oneOf": [ + { "required": [ "user_id" ] }, + { "required": [ "user" ] } + ] + } ] } diff --git a/doc/api/schemas/_topic.json b/doc/api/schemas/_topic.json index e9ccf67b..8f47fcc4 100644 --- a/doc/api/schemas/_topic.json +++ b/doc/api/schemas/_topic.json @@ -27,8 +27,14 @@ "user_id": { "$ref": "_id.json" }, + "user": { + "$ref": "_user.json" + }, "metacode_id": { "$ref": "_id.json" + }, + "metacode": { + "$ref": "_metacode.json" } }, "required": [ @@ -39,5 +45,19 @@ "permission", "created_at", "updated_at" + ], + "allOf": [ + { + "oneOf": [ + { "required": [ "user_id" ] }, + { "required": [ "user" ] } + ] + }, + { + "oneOf": [ + { "required": [ "metacode_id" ] }, + { "required": [ "metacode" ] } + ] + } ] } diff --git a/spec/api/v2/maps_api_spec.rb b/spec/api/v2/maps_api_spec.rb index 596ae6bb..a7edeef2 100644 --- a/spec/api/v2/maps_api_spec.rb +++ b/spec/api/v2/maps_api_spec.rb @@ -62,7 +62,6 @@ RSpec.describe 'maps API', type: :request do post "/api/v2/maps/#{map.id}/stars", params: { access_token: token } expect(response).to have_http_status(:success) expect(response).to match_json_schema(:map) - expect(response).to match_json_schema(:map_starred) expect(user.stars.count).to eq 1 expect(map.stars.count).to eq 1 end