diff --git a/src/backend/db.ts b/src/backend/db.ts index db65c4e..c49fe79 100644 --- a/src/backend/db.ts +++ b/src/backend/db.ts @@ -98,6 +98,7 @@ export async function initializeDb(db: Db) { // ]); } +// TODO: XXX: turn this into a package of some sort (and abstract away key type) /** * Checks if an item identified by some `key` (default identifier is `"_id"`) * exists within `collection`. @@ -105,7 +106,7 @@ export async function initializeDb(db: Db) { export async function itemExists( collection: Collection, id: ObjectId, - key?: '_id' | 'owner' | 'rebarkOf' | 'barkbackTo' + key?: '_id' | 'owner' | 'receiver' | 'replyTo' ): Promise; export async function itemExists( collection: Collection, diff --git a/src/pages/api/v1/memes/[...meme_ids].ts b/src/pages/api/v1/memes/[...meme_ids].ts index 602fbac..0668edb 100644 --- a/src/pages/api/v1/memes/[...meme_ids].ts +++ b/src/pages/api/v1/memes/[...meme_ids].ts @@ -1,11 +1,11 @@ import { wrapHandler } from 'universe/backend/middleware'; -import { getBarks, deleteBarks } from 'universe/backend'; +import { getMemes, updateMemes } from 'universe/backend'; import { itemToObjectId } from 'universe/backend/db'; import { sendHttpOk } from 'multiverse/next-respond'; import { NotFoundError, ValidationError } from 'universe/backend/error'; -import { ObjectId } from 'mongodb'; import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -13,31 +13,33 @@ export { defaultConfig as config } from 'universe/backend/middleware'; export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { - let bark_ids: ObjectId[] | undefined = undefined; + let meme_ids: MemeId[] | undefined = undefined; try { - bark_ids = itemToObjectId( - Array.from(new Set(req.query.bark_ids as string[])) + meme_ids = itemToObjectId( + Array.from(new Set(req.query.meme_ids as string[])) ); } catch { - throw new ValidationError('invalid bark_id(s)'); + throw new ValidationError('invalid meme_id(s)'); } if (req.method == 'GET') { - const barks = await getBarks({ bark_ids }); + const memes = await getMemes({ meme_ids }); - if (barks.length != bark_ids.length) { - throw new NotFoundError('duplicate bark_id(s)'); - } else sendHttpOk(res, { barks }); + if (memes.length != meme_ids.length) { + throw new NotFoundError('duplicate meme_id(s)'); + } else sendHttpOk(res, { memes }); } else { - await deleteBarks({ bark_ids }); + // * PUT + // TODO: validation + await updateMemes({ meme_ids, data: {} }); sendHttpOk(res); } }, { req, res, - methods: ['GET', 'DELETE'], + methods: ['GET', 'PUT'], apiVersion: 1 } ); diff --git a/src/pages/api/v1/memes/[meme_id]/likes/[user_id].ts b/src/pages/api/v1/memes/[meme_id]/likes/[user_id].ts index a314413..437e7cf 100644 --- a/src/pages/api/v1/memes/[meme_id]/likes/[user_id].ts +++ b/src/pages/api/v1/memes/[meme_id]/likes/[user_id].ts @@ -1,10 +1,11 @@ import { wrapHandler } from 'universe/backend/middleware'; -import { isBarkLiked, likeBark, unlikeBark } from 'universe/backend'; +import { isMemeLiked, addLikedMeme, removeLikedMeme } from 'universe/backend'; import { sendHttpOk, sendHttpNotFound } from 'multiverse/next-respond'; import { ValidationError } from 'universe/backend/error'; import { ObjectId } from 'mongodb'; import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId, UserId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -12,13 +13,13 @@ export { defaultConfig as config } from 'universe/backend/middleware'; export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { - let bark_id: ObjectId | undefined = undefined; - let user_id: ObjectId | undefined = undefined; + let meme_id: MemeId | undefined = undefined; + let user_id: UserId | undefined = undefined; try { - bark_id = new ObjectId(req.query.bark_id.toString()); + meme_id = new ObjectId(req.query.meme_id.toString()); } catch { - throw new ValidationError(`invalid bark_id "${req.query.bark_id.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.meme_id.toString()}"`); } try { @@ -28,14 +29,15 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { } if (req.method == 'GET') { - (await isBarkLiked({ bark_id, user_id })) + (await isMemeLiked({ meme_id, user_id })) ? sendHttpOk(res) : sendHttpNotFound(res); } else if (req.method == 'DELETE') { - await unlikeBark({ bark_id, user_id }); + await removeLikedMeme({ meme_id, user_id }); sendHttpOk(res); } else { - await likeBark({ bark_id, user_id }); + // * PUT + await addLikedMeme({ meme_id, user_id }); sendHttpOk(res); } }, diff --git a/src/pages/api/v1/memes/[meme_id]/likes/index.ts b/src/pages/api/v1/memes/[meme_id]/likes/index.ts index 176b0ee..01edc59 100644 --- a/src/pages/api/v1/memes/[meme_id]/likes/index.ts +++ b/src/pages/api/v1/memes/[meme_id]/likes/index.ts @@ -1,10 +1,11 @@ -import { getBarkLikesUserIds } from 'universe/backend'; +import { getMemeLikesUserIds } from 'universe/backend'; import { sendHttpOk } from 'multiverse/next-respond'; import { wrapHandler } from 'universe/backend/middleware'; import { ObjectId } from 'mongodb'; - import { ValidationError } from 'universe/backend/error'; + import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId, UserId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -12,23 +13,26 @@ export { defaultConfig as config } from 'universe/backend/middleware'; export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { - let after: ObjectId | null | undefined = undefined; - let bark_id: ObjectId | undefined = undefined; + let after: UserId | null | undefined = undefined; + let meme_id: MemeId | undefined = undefined; try { after = req.query.after ? new ObjectId(req.query.after.toString()) : null; } catch { - throw new ValidationError(`invalid bark_id "${req.query.after.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.after.toString()}"`); } try { - bark_id = new ObjectId(req.query.bark_id.toString()); + meme_id = new ObjectId(req.query.meme_id.toString()); } catch { - throw new ValidationError(`invalid bark_id "${req.query.bark_id.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.meme_id.toString()}"`); } - if (bark_id !== undefined) { - sendHttpOk(res, { users: await getBarkLikesUserIds({ bark_id, after }) }); + // * GET + if (meme_id !== undefined) { + sendHttpOk(res, { + users: await getMemeLikesUserIds({ meme_id, after }) + }); } }, { diff --git a/src/pages/api/v1/memes/index.ts b/src/pages/api/v1/memes/index.ts index 9af451e..f33d184 100644 --- a/src/pages/api/v1/memes/index.ts +++ b/src/pages/api/v1/memes/index.ts @@ -1,10 +1,11 @@ import { wrapHandler } from 'universe/backend/middleware'; -import { createBark, searchBarks } from 'universe/backend'; +import { createMeme, searchMemes } from 'universe/backend'; import { sendHttpOk } from 'multiverse/next-respond'; import { ValidationError } from 'universe/backend/error'; import { ObjectId } from 'mongodb'; import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -13,23 +14,24 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { const key = req.headers.key?.toString() || ''; - let after: ObjectId | null | undefined = undefined; + let after: MemeId | null | undefined = undefined; try { after = req.query.after ? new ObjectId(req.query.after.toString()) : null; } catch { - throw new ValidationError(`invalid bark_id "${req.query.after.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.after.toString()}"`); } if (req.method == 'GET') { sendHttpOk(res, { - barks: await searchBarks({ + memes: await searchMemes({ after, match: {}, regexMatch: {} }) }); - } else sendHttpOk(res, { bark: await createBark({ key, data: req.body }) }); + } else + sendHttpOk(res, { meme: await createMeme({ creatorKey: key, data: req.body }) }); }, { req, res, methods: ['GET', 'POST'], apiVersion: 1 } ); diff --git a/src/pages/api/v1/memes/search.ts b/src/pages/api/v1/memes/search.ts index 15eaa41..8f15be2 100644 --- a/src/pages/api/v1/memes/search.ts +++ b/src/pages/api/v1/memes/search.ts @@ -1,10 +1,11 @@ import { sendHttpOk } from 'multiverse/next-respond'; -import { searchBarks } from 'universe/backend'; +import { searchMemes } from 'universe/backend'; import { wrapHandler } from 'universe/backend/middleware'; import { ValidationError } from 'universe/backend/error'; import { ObjectId } from 'mongodb'; import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -12,14 +13,14 @@ export { defaultConfig as config } from 'universe/backend/middleware'; export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { - let after: ObjectId | null | undefined = undefined; + let after: MemeId | null | undefined = undefined; let match: Record | undefined = undefined; let regexMatch: Record | undefined = undefined; try { after = req.query.after ? new ObjectId(req.query.after.toString()) : null; } catch { - throw new ValidationError(`invalid bark_id "${req.query.after.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.after.toString()}"`); } try { @@ -31,7 +32,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { if (match && regexMatch) { sendHttpOk(res, { - barks: await searchBarks({ + memes: await searchMemes({ after, // @ts-expect-error: validation is handled match, diff --git a/src/pages/api/v1/users/[user_id]/liked/[meme_id].ts b/src/pages/api/v1/users/[user_id]/liked/[meme_id].ts index 01b4535..46a2a2a 100644 --- a/src/pages/api/v1/users/[user_id]/liked/[meme_id].ts +++ b/src/pages/api/v1/users/[user_id]/liked/[meme_id].ts @@ -1,10 +1,11 @@ import { wrapHandler } from 'universe/backend/middleware'; -import { isBarkLiked } from 'universe/backend'; +import { isMemeLiked } from 'universe/backend'; import { sendHttpNotFound, sendHttpOk } from 'multiverse/next-respond'; import { ValidationError } from 'universe/backend/error'; import { ObjectId } from 'mongodb'; import type { NextApiResponse, NextApiRequest } from 'next'; +import type { MemeId, UserId } from 'types/global'; // ? This is a NextJS special "config" export export { defaultConfig as config } from 'universe/backend/middleware'; @@ -12,13 +13,13 @@ export { defaultConfig as config } from 'universe/backend/middleware'; export default async function (req: NextApiRequest, res: NextApiResponse) { await wrapHandler( async ({ req, res }) => { - let bark_id: ObjectId | undefined = undefined; - let user_id: ObjectId | undefined = undefined; + let meme_id: MemeId | undefined = undefined; + let user_id: UserId | undefined = undefined; try { - bark_id = new ObjectId(req.query.bark_id.toString()); + meme_id = new ObjectId(req.query.meme_id.toString()); } catch { - throw new ValidationError(`invalid bark_id "${req.query.bark_id.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.meme_id.toString()}"`); } try { @@ -28,7 +29,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { } if (user_id !== undefined) { - (await isBarkLiked({ bark_id, user_id })) + (await isMemeLiked({ meme_id, user_id })) ? sendHttpOk(res) : sendHttpNotFound(res); } diff --git a/src/pages/api/v1/users/[user_id]/liked/index.ts b/src/pages/api/v1/users/[user_id]/liked/index.ts index a1f5a4d..85747a1 100644 --- a/src/pages/api/v1/users/[user_id]/liked/index.ts +++ b/src/pages/api/v1/users/[user_id]/liked/index.ts @@ -1,5 +1,5 @@ import { wrapHandler } from 'universe/backend/middleware'; -import { getUserLikedBarkIds } from 'universe/backend'; +import { getUserLikedMemeIds } from 'universe/backend'; import { sendHttpOk } from 'multiverse/next-respond'; import { ValidationError } from 'universe/backend/error'; import { ObjectId } from 'mongodb'; @@ -18,7 +18,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { try { after = req.query.after ? new ObjectId(req.query.after.toString()) : null; } catch { - throw new ValidationError(`invalid bark_id "${req.query.after.toString()}"`); + throw new ValidationError(`invalid meme_id "${req.query.after.toString()}"`); } try { @@ -27,7 +27,7 @@ export default async function (req: NextApiRequest, res: NextApiResponse) { throw new ValidationError(`invalid user_id "${req.query.user_id.toString()}"`); } - sendHttpOk(res, { barks: await getUserLikedBarkIds({ user_id, after }) }); + sendHttpOk(res, { memes: await getUserLikedMemeIds({ user_id, after }) }); }, { req, diff --git a/test/integration.fixtures.ts b/test/integration.fixtures.ts index b998402..5c90034 100644 --- a/test/integration.fixtures.ts +++ b/test/integration.fixtures.ts @@ -668,7 +668,7 @@ export function getFixtures(api: Record): TestFixtu private: false, barkbackTo: null, rebarkOf: null, - bark_id: expect.any(String), + meme_id: expect.any(String), likes: 0, rebarks: 0, barkbacks: 0 @@ -820,7 +820,7 @@ export function getFixtures(api: Record): TestFixtu method: 'PUT', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200 } }, @@ -830,7 +830,7 @@ export function getFixtures(api: Record): TestFixtu method: 'PUT', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200 } }, @@ -854,7 +854,7 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'GET', params: ({ getResultAt }) => ({ - bark_ids: [getResultAt('bark-user-test-1', 'bark.bark_id')] + meme_ids: [getResultAt('bark-user-test-1', 'bark.meme_id')] }), response: { status: 200, @@ -877,7 +877,7 @@ export function getFixtures(api: Record): TestFixtu status: 200, json: (json, { getResultAt }) => { expect(json?.barks as string[]).toStrictEqual([ - getResultAt('bark-user-test-1', 'bark.bark_id') + getResultAt('bark-user-test-1', 'bark.meme_id') ]); return undefined; } @@ -889,7 +889,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200 } }, @@ -899,7 +899,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200 } }, @@ -919,7 +919,7 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIdLikes, method: 'GET', params: ({ getResultAt }) => ({ - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200, @@ -937,7 +937,7 @@ export function getFixtures(api: Record): TestFixtu method: 'DELETE', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200 } }, @@ -947,11 +947,11 @@ export function getFixtures(api: Record): TestFixtu method: 'DELETE', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }),mockedUpdateMemes method: 'GET', params: ({ getResultAt }) => ({ - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 200, @@ -964,7 +964,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 404 } }, @@ -974,7 +974,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }), response: { status: 404 } }, @@ -998,7 +998,7 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'GET', params: ({ getResultAt }) => ({ - bark_ids: [getResultAt('bark-user-test-1', 'bark.bark_id')] + meme_ids: [getResultAt('bark-user-test-1', 'bark.meme_id')] }), response: { status: 200, @@ -1038,8 +1038,8 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'DELETE', params: ({ getResultAt }) => ({ - bark_ids: [ - getResultAt('bark-user-test-1', 'bark.bark_id'), + meme_ids: [ + getResultAt('bark-user-test-1', 'bark.meme_id'), ...targetedForDeletion ] }), @@ -1050,8 +1050,8 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'GET', params: ({ getResultAt }) => ({ - bark_ids: [ - getResultAt('bark-user-test-1', 'bark.bark_id'), + meme_ids: [ + getResultAt('bark-user-test-1', 'bark.meme_id'), ...targetedForDeletion ] }), @@ -1069,8 +1069,8 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'DELETE', params: ({ getResultAt }) => ({ - bark_ids: [ - getResultAt('bark-user-test-1', 'bark.bark_id'), + meme_ids: [ + getResultAt('bark-user-test-1', 'bark.meme_id'), ...targetedForDeletion ] }), @@ -1438,7 +1438,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 404 } }, @@ -1448,7 +1448,7 @@ export function getFixtures(api: Record): TestFixtu method: 'PUT', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 200 } }, @@ -1458,7 +1458,7 @@ export function getFixtures(api: Record): TestFixtu method: 'PUT', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 200 } }, @@ -1468,7 +1468,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 200 } }, @@ -1510,7 +1510,7 @@ export function getFixtures(api: Record): TestFixtu method: 'DELETE', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 200 } }, @@ -1531,7 +1531,7 @@ export function getFixtures(api: Record): TestFixtu method: 'DELETE', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 200 } }, @@ -1541,7 +1541,7 @@ export function getFixtures(api: Record): TestFixtu method: 'GET', params: ({ getResultAt }) => ({ user_id: getResultAt('user-test-1', 'user.user_id'), - bark_id: dummyDbData.barks[0]._id.toHexString() + meme_id: dummyDbData.barks[0]._id.toHexString() }), response: { status: 404 } }, @@ -1581,7 +1581,7 @@ export function getFixtures(api: Record): TestFixtu response: { status: 200, json: (json) => { - expect((json?.barks as PublicMeme[])[0].bark_id).toEqual( + expect((json?.barks as PublicMeme[])[0].meme_id).toEqual( dummyDbData.barks[28]._id.toHexString() ); return undefined; @@ -1593,7 +1593,7 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIds, method: 'GET', params: { - bark_ids: Array.from({ length: getEnv().RESULTS_PER_PAGE + 1 }).map(() => + meme_ids: Array.from({ length: getEnv().RESULTS_PER_PAGE + 1 }).map(() => new ObjectId().toHexString() ) }, @@ -1607,7 +1607,7 @@ export function getFixtures(api: Record): TestFixtu handler: api.barksIdLikes, method: 'GET', params: { - bark_id: dummyDbData.barks[29]._id.toHexString(), + meme_id: dummyDbData.barks[29]._id.toHexString(), after: dummyDbData.barks[29].likes[0].toHexString() }, response: { @@ -1720,7 +1720,7 @@ export function getFixtures(api: Record): TestFixtu response: { status: 200, json: (json) => { - expect((json?.barks as PublicMeme[])[0].bark_id).toEqual( + expect((json?.barks as PublicMeme[])[0].meme_id).toEqual( dummyDbData.barks[28]._id.toHexString() ); return undefined; @@ -1737,7 +1737,7 @@ export function getFixtures(api: Record): TestFixtu response: { status: 200, json: (json) => { - expect((json?.barks as PublicMeme[])[0].bark_id).toEqual( + expect((json?.barks as PublicMeme[])[0].meme_id).toEqual( dummyDbData.barks .find((bark) => bark.content == '#28 bark contents') ?._id.toHexString() || toss(new GuruMeditationError()) @@ -1757,7 +1757,7 @@ export function getFixtures(api: Record): TestFixtu status: 200, json: (json) => { expect( - (json?.barks as PublicMeme[]).map((bark) => bark.bark_id) + (json?.barks as PublicMeme[]).map((bark) => bark.meme_id) ).toIncludeSameMembers( dummyDbData.barks .filter((bark) => bark.totalLikes > 50) @@ -1778,7 +1778,7 @@ export function getFixtures(api: Record): TestFixtu status: 200, json: (json) => { expect( - (json?.barks as PublicMeme[]).map((bark) => bark.bark_id) + (json?.barks as PublicMeme[]).map((bark) => bark.meme_id) ).toIncludeSameMembers( dummyDbData.barks .filter((bark) => bark.totalLikes >= 25) @@ -1799,7 +1799,7 @@ export function getFixtures(api: Record): TestFixtu status: 200, json: (json) => { expect( - (json?.barks as PublicMeme[]).map((bark) => bark.bark_id) + (json?.barks as PublicMeme[]).map((bark) => bark.meme_id) ).toIncludeSameMembers( dummyDbData.barks .filter((bark) => bark.totalLikes < 75 && bark.totalLikes > 0) @@ -1820,7 +1820,7 @@ export function getFixtures(api: Record): TestFixtu status: 200, json: (json) => { expect( - (json?.barks as PublicMeme[]).map((bark) => bark.bark_id) + (json?.barks as PublicMeme[]).map((bark) => bark.meme_id) ).toIncludeSameMembers( dummyDbData.barks .filter((bark) => bark.totalLikes <= 100 && bark.totalLikes > 0) @@ -1851,8 +1851,8 @@ export function getFixtures(api: Record): TestFixtu response: { status: 200, json: (json, { getResultAt }) => { - expect((json?.barks as PublicMeme[]).map((bark) => bark.bark_id)).toStrictEqual( - [getResultAt('bark-user-test-1', 'bark.bark_id')] + expect((json?.barks as PublicMeme[]).map((bark) => bark.meme_id)).toStrictEqual( + [getResultAt('bark-user-test-1', 'bark.meme_id')] ); return undefined; } @@ -1903,7 +1903,7 @@ export function getFixtures(api: Record): TestFixtu } }, { - subject: 'search barkbackTo bark_id via regexMatch', + subject: 'search barkbackTo meme_id via regexMatch', handler: api.barksSearch, method: 'GET', params: { @@ -1922,7 +1922,7 @@ export function getFixtures(api: Record): TestFixtu } }, { - subject: 'search rebarkOf bark_id via regexMatch', + subject: 'search rebarkOf meme_id via regexMatch', handler: api.barksSearch, method: 'GET', params: { @@ -1941,12 +1941,12 @@ export function getFixtures(api: Record): TestFixtu } }, { - subject: 'cannot search bark_ids via match', + subject: 'cannot search meme_ids via match', handler: api.barksSearch, method: 'GET', params: ({ getResultAt }) => ({ match: JSON.stringify({ - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }) }), response: { @@ -1955,12 +1955,12 @@ export function getFixtures(api: Record): TestFixtu } }, { - subject: 'cannot search bark_ids via regexMatch', + subject: 'cannot search meme_ids via regexMatch', handler: api.barksSearch, method: 'GET', params: ({ getResultAt }) => ({ regexMatch: JSON.stringify({ - bark_id: getResultAt('bark-user-test-1', 'bark.bark_id') + meme_id: getResultAt('bark-user-test-1', 'bark.meme_id') }) }), response: { @@ -2009,13 +2009,13 @@ export function getFixtures(api: Record): TestFixtu deleted: false }), regexMatch: JSON.stringify({ content: '\\d\\d' }), - after: getResultAt(-1, 'barks')[1].bark_id + after: getResultAt(-1, 'barks')[1].meme_id }), response: { status: 200, json: (json, { getResultAt }) => { - expect((json?.barks as PublicMeme[])[0].bark_id).toStrictEqual( - getResultAt(-1, 'barks')[2].bark_id + expect((json?.barks as PublicMeme[])[0].meme_id).toStrictEqual( + getResultAt(-1, 'barks')[2].meme_id ); return undefined; } diff --git a/test/integration.test.ts b/test/integration.test.ts index d808f78..6d9612e 100644 --- a/test/integration.test.ts +++ b/test/integration.test.ts @@ -12,7 +12,7 @@ import EndpointInfo, { config as ConfigInfo } from 'universe/pages/api/v1/info'; import EndpointBarksIds, { config as ConfigBarksIds -} from 'universe/pages/api/v1/barks/[...bark_ids]'; +} from 'universe/pages/api/v1/barks/[...meme_ids]'; import EndpointBarksSearch, { config as ConfigBarksSearch @@ -20,11 +20,11 @@ import EndpointBarksSearch, { import EndpointBarksIdLikes, { config as ConfigBarksIdLikes -} from 'universe/pages/api/v1/barks/[bark_id]/likes'; +} from 'universe/pages/api/v1/barks/[meme_id]/likes'; import EndpointBarksIdLikesId, { config as ConfigBarksIdLikesId -} from 'universe/pages/api/v1/barks/[bark_id]/likes/[user_id]'; +} from 'universe/pages/api/v1/barks/[meme_id]/likes/[user_id]'; import EndpointUsersId, { config as ConfigUsersId @@ -36,7 +36,7 @@ import EndpointUsersIdLiked, { import EndpointUsersIdLikedId, { config as ConfigUsersIdLikedId -} from 'universe/pages/api/v1/users/[user_id]/liked/[bark_id]'; +} from 'universe/pages/api/v1/users/[user_id]/liked/[meme_id]'; import EndpointUsersIdFollowing, { config as ConfigUsersIdFollowing @@ -60,7 +60,7 @@ import EndpointUsersIdBookmarks, { import EndpointUsersIdBookmarksId, { config as ConfigUsersIdBookmarksId -} from 'universe/pages/api/v1/users/[user_id]/bookmarks/[bark_id]'; +} from 'universe/pages/api/v1/users/[user_id]/bookmarks/[meme_id]'; import type { NextApiHandlerMixin, @@ -110,18 +110,18 @@ api.info.config = ConfigInfo; api.users.url = '/users'; api.usersId.url = '/users/:user_id'; api.usersIdLiked.url = '/users/:user_id/liked'; -api.usersIdLikedId.url = '/users/:user_id/liked/:bark_id'; +api.usersIdLikedId.url = '/users/:user_id/liked/:meme_id'; api.usersIdFollowing.url = '/users/:user_id/following'; api.usersIdFollowingId.url = '/users/:user_id/following/:followed_id'; api.usersIdPack.url = '/users/:user_id/pack'; api.usersIdPackId.url = '/users/:user_id/pack/:packmate_id'; api.usersIdBookmarks.url = '/users/:user_id/bookmarks'; -api.usersIdBookmarksId.url = '/users/:user_id/bookmarks/:bark_id'; +api.usersIdBookmarksId.url = '/users/:user_id/bookmarks/:meme_id'; api.barks.url = '/barks'; -api.barksIds.url = '/barks/:bark_id1/:bark_id2/.../:bark_idN'; +api.barksIds.url = '/barks/:meme_id1/:meme_id2/.../:meme_idN'; api.barksSearch.url = '/barks/search'; -api.barksIdLikes.url = '/barks/:bark_id/likes'; -api.barksIdLikesId.url = '/barks/:bark_id/likes/:user_id'; +api.barksIdLikes.url = '/barks/:meme_id/likes'; +api.barksIdLikesId.url = '/barks/:meme_id/likes/:user_id'; api.info.url = '/info'; const withMockedEnv = mockEnvFactory({}, { replace: false }); diff --git a/test/unit-api-memes.test.ts b/test/unit-api-memes.test.ts index ac68bf4..da19a51 100644 --- a/test/unit-api-memes.test.ts +++ b/test/unit-api-memes.test.ts @@ -178,7 +178,7 @@ describe('api/v1/memes', () => { handler: api.memesIds, test: async ({ fetch }) => { // ? fetch is async, so to use params we need to wait - // TODO: fix w/ paramsPatcher + // TODO: fix w/ paramsPatcher (and the others too) for (const item of items) { params.meme_ids = item; @@ -249,7 +249,7 @@ describe('api/v1/memes', () => { for (const item of items) { params.meme_ids = item; - const json = await fetch({ method: 'DELETE', headers: { KEY } }).then((r) => + const json = await fetch({ method: 'PUT', headers: { KEY } }).then((r) => r.json() ); @@ -267,7 +267,7 @@ describe('api/v1/memes', () => { handler: api.memesIds, test: async ({ fetch }) => { expect( - await fetch({ method: 'DELETE', headers: { KEY } }).then((r) => r.status) + await fetch({ method: 'PUT', headers: { KEY } }).then((r) => r.status) ).toStrictEqual(400); } });