Hailey 2b7efb6cb1
v2 trends endpoint (#3673)
* Reapply "add codegen"

This reverts commit 620b10954af90f53e1692c3fd7451c675f1e9956.

* add pipethrough

* pipethrough header

* fix descriptions

* rm

* codgen/build

* add hot

* Codegen

* Hotter

* Category as optional open string

* Format

* required array

* update lex

* use right viewer

* lex codegen

* update comment

* codegen

* Add basic test

* Format

* Changeset

---------

Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: rafael <rafael@blueskyweb.xyz>
2025-04-01 12:44:18 -05:00

71 lines
1.7 KiB
TypeScript

import { SeedClient, TestNetwork, TestNetworkNoAppView } from '@atproto/dev-env'
export type User = {
id: string
did: string
email: string
handle: string
password: string
displayName: string
description: string
selfLabels: undefined
}
function createUser(name: string): User {
return {
id: name,
// @ts-ignore overwritten below
did: undefined,
email: `${name}@test.com`,
handle: `${name}.test`,
password: `${name}-pass`,
displayName: name,
description: `hi im ${name} label_me`,
selfLabels: undefined,
}
}
const users = {
trender: createUser('trender'),
posterA: createUser('posterA'),
posterB: createUser('posterB'),
posterC: createUser('posterC'),
posterD: createUser('posterD'),
viewer: createUser('viewer'),
viewerBlocker: createUser('viewerBlocker'),
}
export type Users = typeof users
export type Feeds = SeedClient['feedgens']
export async function trendsSeed(
sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
) {
const u = structuredClone(users)
await sc.createAccount('trender', u.trender)
await sc.createAccount('posterA', u.posterA)
await sc.createAccount('posterB', u.posterB)
await sc.createAccount('posterC', u.posterC)
await sc.createAccount('posterD', u.posterD)
await sc.createAccount('viewer', u.viewer)
await sc.createAccount('viewerBlocker', u.viewerBlocker)
Object.values(u).forEach((user) => {
u[user.id].did = sc.dids[user.id]
})
await sc.createFeedGen(u.trender.did, 'did:web:example.com', 'trendA')
await sc.block(u.viewerBlocker.did, u.posterC.did)
await sc.network.processAll()
return {
users: u,
feeds: sc.feedgens,
seedClient: sc,
}
}