refactor query requests to use queryRequest module

This commit is contained in:
pa
2026-03-09 22:08:18 +09:00
parent 58b9bdc1c5
commit ca57cd6590
12 changed files with 317 additions and 64 deletions

View File

@@ -10,20 +10,35 @@ vi.mock('../../queries', () => ({
user: { staleTime: 20000, gcTime: 90000, retry: 1, refetchOnWindowFocus: false },
worldCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
groupCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
groupCalendarCollection: { staleTime: 120000, gcTime: 600000, retry: 1, refetchOnWindowFocus: false },
groupFollowingCalendarCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
groupFeaturedCalendarCollection: { staleTime: 300000, gcTime: 900000, retry: 1, refetchOnWindowFocus: false },
groupCalendarEvent: { staleTime: 120000, gcTime: 600000, retry: 1, refetchOnWindowFocus: false },
avatar: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
avatarCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
avatarGallery: { staleTime: 30000, gcTime: 120000, retry: 1, refetchOnWindowFocus: false },
world: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
group: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
friendList: { staleTime: 20000, gcTime: 90000, retry: 1, refetchOnWindowFocus: false },
favoriteCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
galleryCollection: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
inventoryCollection: { staleTime: 20000, gcTime: 120000, retry: 1, refetchOnWindowFocus: false },
inventoryObject: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false },
fileAnalysis: { staleTime: 120000, gcTime: 600000, retry: 1, refetchOnWindowFocus: false },
worldPersistData: { staleTime: 120000, gcTime: 600000, retry: 1, refetchOnWindowFocus: false },
mutualCounts: { staleTime: 120000, gcTime: 600000, retry: 1, refetchOnWindowFocus: false },
visits: { staleTime: 300000, gcTime: 900000, retry: 1, refetchOnWindowFocus: false },
fileObject: { staleTime: 60000, gcTime: 300000, retry: 1, refetchOnWindowFocus: false }
},
fetchWithEntityPolicy: (...args) => mockFetchWithEntityPolicy(...args),
queryKeys: {
user: (userId) => ['user', userId],
avatars: (params) => ['avatar', 'list', params],
worldsByUser: (params) => ['worlds', 'user', params.userId, params],
groupCalendar: (groupId) => ['group', groupId, 'calendar'],
groupCalendars: (params) => ['group', 'calendar', params],
followingGroupCalendars: (params) => ['group', 'calendar', 'following', params],
featuredGroupCalendars: (params) => ['group', 'calendar', 'featured', params],
avatar: (avatarId) => ['avatar', avatarId],
world: (worldId) => ['world', worldId],
group: (groupId, includeRoles) => ['group', groupId, Boolean(includeRoles)],
@@ -32,6 +47,7 @@ vi.mock('../../queries', () => ({
groupMembers: (params) => ['group', params.groupId, 'members', params],
groupGallery: (params) => ['group', params.groupId, 'gallery', params.galleryId, params],
groupCalendarEvent: (params) => ['group', params.groupId, 'calendarEvent', params.eventId],
avatarGallery: (avatarId) => ['avatar', avatarId, 'gallery'],
friends: (params) => ['friends', params],
favoriteLimits: () => ['favorite', 'limits'],
favorites: (params) => ['favorite', 'items', params],
@@ -41,15 +57,22 @@ vi.mock('../../queries', () => ({
galleryFiles: (params) => ['gallery', 'files', params],
prints: (params) => ['gallery', 'prints', params],
print: (printId) => ['gallery', 'print', printId],
inventoryItem: (inventoryId) => ['inventory', 'item', inventoryId],
userInventoryItem: (params) => ['inventory', 'item', params.userId, params.inventoryId],
inventoryItems: (params) => ['inventory', 'items', params],
inventoryTemplate: (inventoryTemplateId) => ['inventory', 'template', inventoryTemplateId],
fileAnalysis: (params) => ['analysis', params.fileId, Number(params.version), String(params.variant || '')],
worldPersistData: (worldId) => ['world', worldId, 'persistData'],
mutualCounts: (userId) => ['user', userId, 'mutualCounts'],
visits: () => ['visits'],
file: (fileId) => ['file', fileId]
}
}));
vi.mock('../user', () => ({
default: {
getUser: (...args) => mockGetUser(...args)
getUser: (...args) => mockGetUser(...args),
getMutualCounts: vi.fn()
}
}));
@@ -68,11 +91,16 @@ vi.mock('../group', () => ({
getGroupMember: vi.fn(),
getGroupMembers: vi.fn(),
getGroupGallery: vi.fn(),
getGroupCalendarEvent: vi.fn()
getGroupCalendarEvent: vi.fn(),
getGroupCalendars: vi.fn(),
getFollowingGroupCalendars: vi.fn(),
getFeaturedGroupCalendars: vi.fn()
}
}));
vi.mock('../avatar', () => ({ default: { getAvatar: vi.fn() } }));
vi.mock('../avatar', () => ({
default: { getAvatar: vi.fn(), getAvatarGallery: vi.fn(), getAvatars: vi.fn() }
}));
vi.mock('../friend', () => ({ default: { getFriends: vi.fn() } }));
vi.mock('../favorite', () => ({
default: {
@@ -88,9 +116,21 @@ vi.mock('../vrcPlusImage', () => ({
default: { getPrints: vi.fn(), getPrint: vi.fn() }
}));
vi.mock('../inventory', () => ({
default: { getUserInventoryItem: vi.fn(), getInventoryItems: vi.fn() }
default: {
getUserInventoryItem: vi.fn(),
getInventoryItem: vi.fn(),
getInventoryItems: vi.fn(),
getInventoryTemplate: vi.fn()
}
}));
vi.mock('../misc', () => ({
default: {
getFile: vi.fn(),
getFileAnalysis: vi.fn(),
getVisits: vi.fn(),
hasWorldPersistData: vi.fn()
}
}));
vi.mock('../misc', () => ({ default: { getFile: vi.fn() } }));
import queryRequest from '../queryRequest';

View File

@@ -67,11 +67,31 @@ const registry = Object.freeze({
policy: entityQueryPolicies.groupCollection,
queryFn: (params) => groupRequest.getGroupCalendar(params.groupId)
},
groupCalendars: {
key: (params) => queryKeys.groupCalendars(params),
policy: entityQueryPolicies.groupCalendarCollection,
queryFn: (params) => groupRequest.getGroupCalendars(params)
},
followingGroupCalendars: {
key: (params) => queryKeys.followingGroupCalendars(params),
policy: entityQueryPolicies.groupFollowingCalendarCollection,
queryFn: (params) => groupRequest.getFollowingGroupCalendars(params)
},
featuredGroupCalendars: {
key: (params) => queryKeys.featuredGroupCalendars(params),
policy: entityQueryPolicies.groupFeaturedCalendarCollection,
queryFn: (params) => groupRequest.getFeaturedGroupCalendars(params)
},
groupCalendarEvent: {
key: (params) => queryKeys.groupCalendarEvent(params),
policy: entityQueryPolicies.groupCollection,
policy: entityQueryPolicies.groupCalendarEvent,
queryFn: (params) => groupRequest.getGroupCalendarEvent(params)
},
avatarGallery: {
key: (params) => queryKeys.avatarGallery(params.avatarId),
policy: entityQueryPolicies.avatarGallery,
queryFn: (params) => avatarRequest.getAvatarGallery(params.avatarId)
},
friends: {
key: (params) => queryKeys.friends(params),
policy: entityQueryPolicies.friendList,
@@ -122,11 +142,41 @@ const registry = Object.freeze({
policy: entityQueryPolicies.inventoryCollection,
queryFn: (params) => inventoryRequest.getUserInventoryItem(params)
},
inventoryItem: {
key: (params) => queryKeys.inventoryItem(params.inventoryId),
policy: entityQueryPolicies.inventoryObject,
queryFn: (params) => inventoryRequest.getInventoryItem(params)
},
inventoryItems: {
key: (params) => queryKeys.inventoryItems(params),
policy: entityQueryPolicies.inventoryCollection,
queryFn: (params) => inventoryRequest.getInventoryItems(params)
},
inventoryTemplate: {
key: (params) => queryKeys.inventoryTemplate(params.inventoryTemplateId),
policy: entityQueryPolicies.inventoryObject,
queryFn: (params) => inventoryRequest.getInventoryTemplate(params)
},
fileAnalysis: {
key: (params) => queryKeys.fileAnalysis(params),
policy: entityQueryPolicies.fileAnalysis,
queryFn: (params) => miscRequest.getFileAnalysis(params)
},
worldPersistData: {
key: (params) => queryKeys.worldPersistData(params.worldId),
policy: entityQueryPolicies.worldPersistData,
queryFn: (params) => miscRequest.hasWorldPersistData(params)
},
mutualCounts: {
key: (params) => queryKeys.mutualCounts(params.userId),
policy: entityQueryPolicies.mutualCounts,
queryFn: (params) => userRequest.getMutualCounts(params)
},
visits: {
key: () => queryKeys.visits(),
policy: entityQueryPolicies.visits,
queryFn: () => miscRequest.getVisits()
},
file: {
key: (params) => queryKeys.file(params.fileId),
policy: entityQueryPolicies.fileObject,