Remove edges from rooms query
This commit is contained in:
parent
e0c95ad9ce
commit
6ce00694d7
|
|
@ -13,24 +13,18 @@ describe('Room Team Management - Read only', () => {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
RoomsQuery: {
|
RoomsQuery: {
|
||||||
rooms: {
|
rooms: [{
|
||||||
edges: [
|
id: '',
|
||||||
{
|
slug: '',
|
||||||
node: {
|
title: 'some room',
|
||||||
id: '',
|
entryCount: 3,
|
||||||
slug: '',
|
appearance: 'red',
|
||||||
title: 'some room',
|
description: 'some description',
|
||||||
entryCount: 3,
|
schoolClass: {
|
||||||
appearance: 'red',
|
id: SELECTED_CLASS_ID,
|
||||||
description: 'some description',
|
name: 'bla',
|
||||||
schoolClass: {
|
},
|
||||||
id: SELECTED_CLASS_ID,
|
}],
|
||||||
name: 'bla',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,9 +156,7 @@ describe('The Room Page', () => {
|
||||||
MeQuery,
|
MeQuery,
|
||||||
RoomsQuery() {
|
RoomsQuery() {
|
||||||
return {
|
return {
|
||||||
rooms: {
|
rooms
|
||||||
edges: rooms.map(room => ({node: room})),
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
RoomEntriesQuery: {
|
RoomEntriesQuery: {
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,11 @@ describe('The Rooms Page', () => {
|
||||||
const getOperations = (isTeacher) => ({
|
const getOperations = (isTeacher) => ({
|
||||||
MeQuery: getMinimalMe({isTeacher}),
|
MeQuery: getMinimalMe({isTeacher}),
|
||||||
RoomsQuery: {
|
RoomsQuery: {
|
||||||
rooms: {
|
rooms: [{
|
||||||
edges: [
|
schoolClass: {
|
||||||
{
|
id: btoa('SchoolClassNode:selectedClassId'),
|
||||||
node: {
|
},
|
||||||
schoolClass: {
|
}],
|
||||||
id: btoa('SchoolClassNode:selectedClassId'),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -23,9 +17,7 @@ describe('The Rooms Page', () => {
|
||||||
return {
|
return {
|
||||||
...operations,
|
...operations,
|
||||||
RoomsQuery: {
|
RoomsQuery: {
|
||||||
rooms: {
|
rooms: [],
|
||||||
edges: [],
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -105,9 +97,7 @@ describe('The Rooms Page', () => {
|
||||||
MeQuery,
|
MeQuery,
|
||||||
RoomsQuery() {
|
RoomsQuery() {
|
||||||
return {
|
return {
|
||||||
rooms: {
|
rooms
|
||||||
edges: rooms.map(room => ({node: room})),
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
AddRoom({input: {room: {title, appearance, description}}}) {
|
AddRoom({input: {room: {title, appearance, description}}}) {
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,16 @@
|
||||||
},
|
},
|
||||||
update: (store, {data: {deleteRoom: {success}}}) => {
|
update: (store, {data: {deleteRoom: {success}}}) => {
|
||||||
if (success) {
|
if (success) {
|
||||||
const data = store.readQuery({query: ROOMS_QUERY});
|
const {rooms} = store.readQuery({query: ROOMS_QUERY});
|
||||||
if (data) {
|
if (rooms) {
|
||||||
data.rooms.edges.splice(data.rooms.edges.findIndex(edge => edge.node.id === this.id), 1);
|
const index = rooms.findIndex(edge => edge.node.id === this.id);
|
||||||
|
const slicedRooms = [
|
||||||
|
rooms.slice(0, index),
|
||||||
|
rooms.slice(index+1)
|
||||||
|
];
|
||||||
|
const data = {
|
||||||
|
rooms: slicedRooms
|
||||||
|
};
|
||||||
store.writeQuery({query: ROOMS_QUERY, data});
|
store.writeQuery({query: ROOMS_QUERY, data});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,12 +53,25 @@
|
||||||
try {
|
try {
|
||||||
const query = ROOM_ENTRIES_QUERY;
|
const query = ROOM_ENTRIES_QUERY;
|
||||||
const variables = {slug: this.room.slug};
|
const variables = {slug: this.room.slug};
|
||||||
const data = store.readQuery({query, variables});
|
const {room} = store.readQuery({query, variables});
|
||||||
if (data.room && data.room.roomEntries) {
|
if (room && room.roomEntries) {
|
||||||
data.room.roomEntries.edges.unshift({
|
const newEdge ={
|
||||||
node: roomEntry,
|
node: roomEntry,
|
||||||
__typename: 'RoomEntryNode'
|
__typename: 'RoomEntryNodeEdge'
|
||||||
});
|
};
|
||||||
|
const edges = [
|
||||||
|
newEdge,
|
||||||
|
...room.roomEntries.edges
|
||||||
|
];
|
||||||
|
const data = {
|
||||||
|
room: {
|
||||||
|
...room,
|
||||||
|
roomEntries: {
|
||||||
|
...room.roomEntries,
|
||||||
|
edges
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
store.writeQuery({query, variables, data});
|
store.writeQuery({query, variables, data});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
#import "../fragments/roomParts.gql"
|
#import "../fragments/roomParts.gql"
|
||||||
query RoomsQuery {
|
query RoomsQuery {
|
||||||
rooms {
|
rooms {
|
||||||
edges {
|
...RoomParts
|
||||||
node {
|
|
||||||
...RoomParts
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,12 +40,15 @@
|
||||||
},
|
},
|
||||||
update: (store, {data: {addRoom: {room}}}) => {
|
update: (store, {data: {addRoom: {room}}}) => {
|
||||||
try {
|
try {
|
||||||
const data = store.readQuery({query: ROOMS_QUERY});
|
const {rooms} = store.readQuery({query: ROOMS_QUERY});
|
||||||
if (data.rooms) {
|
if (rooms) {
|
||||||
data.rooms.edges.push({
|
const expandedRooms = [
|
||||||
node: room,
|
...rooms,
|
||||||
__typename: 'RoomNodeEdge'
|
room
|
||||||
});
|
];
|
||||||
|
const data = {
|
||||||
|
rooms: expandedRooms
|
||||||
|
};
|
||||||
store.writeQuery({query: ROOMS_QUERY, data});
|
store.writeQuery({query: ROOMS_QUERY, data});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
||||||
|
|
@ -69,9 +69,6 @@
|
||||||
apollo: {
|
apollo: {
|
||||||
rooms: {
|
rooms: {
|
||||||
query: ROOMS_QUERY,
|
query: ROOMS_QUERY,
|
||||||
update(data) {
|
|
||||||
return this.$getRidOfEdges(data).rooms;
|
|
||||||
},
|
|
||||||
pollInterval: 5000,
|
pollInterval: 5000,
|
||||||
},
|
},
|
||||||
me: {
|
me: {
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ class RoomsQuery(object):
|
||||||
room_entry = graphene.Field(RoomEntryNode, id=graphene.ID(), slug=graphene.String())
|
room_entry = graphene.Field(RoomEntryNode, id=graphene.ID(), slug=graphene.String())
|
||||||
room = graphene.Field(RoomNode, slug=graphene.String(), id=graphene.ID(), appearance=graphene.String())
|
room = graphene.Field(RoomNode, slug=graphene.String(), id=graphene.ID(), appearance=graphene.String())
|
||||||
|
|
||||||
rooms = DjangoFilterConnectionField(RoomNode)
|
rooms = graphene.List(RoomNode)
|
||||||
all_room_entries = DjangoFilterConnectionField(RoomEntryNode)
|
all_room_entries = DjangoFilterConnectionField(RoomEntryNode)
|
||||||
|
|
||||||
def resolve_rooms(self, info, **kwargs):
|
def resolve_rooms(self, info, **kwargs):
|
||||||
|
|
|
||||||
|
|
@ -474,7 +474,7 @@ type CustomQuery {
|
||||||
objectiveGroups(offset: Int, before: String, after: String, first: Int, last: Int, title: String, module_Slug: String): ObjectiveGroupNodeConnection
|
objectiveGroups(offset: Int, before: String, after: String, first: Int, last: Int, title: String, module_Slug: String): ObjectiveGroupNodeConnection
|
||||||
roomEntry(id: ID, slug: String): RoomEntryNode
|
roomEntry(id: ID, slug: String): RoomEntryNode
|
||||||
room(slug: String, id: ID, appearance: String): RoomNode
|
room(slug: String, id: ID, appearance: String): RoomNode
|
||||||
rooms(offset: Int, before: String, after: String, first: Int, last: Int, slug: String, appearance: String): RoomNodeConnection
|
rooms: [RoomNode]
|
||||||
allRoomEntries(offset: Int, before: String, after: String, first: Int, last: Int, slug: String): RoomEntryNodeConnection
|
allRoomEntries(offset: Int, before: String, after: String, first: Int, last: Int, slug: String): RoomEntryNodeConnection
|
||||||
moduleRoom(slug: String, classId: ID): RoomNode
|
moduleRoom(slug: String, classId: ID): RoomNode
|
||||||
me: PrivateUserNode
|
me: PrivateUserNode
|
||||||
|
|
@ -933,16 +933,6 @@ type RoomNode implements Node {
|
||||||
entryCount: Int
|
entryCount: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
type RoomNodeConnection {
|
|
||||||
pageInfo: PageInfo!
|
|
||||||
edges: [RoomNodeEdge]!
|
|
||||||
}
|
|
||||||
|
|
||||||
type RoomNodeEdge {
|
|
||||||
node: RoomNode
|
|
||||||
cursor: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
input SchoolClassInput {
|
input SchoolClassInput {
|
||||||
id: ID
|
id: ID
|
||||||
name: String
|
name: String
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue