Skip to content

Commit

Permalink
JWT auth (bluesky-social#187)
Browse files Browse the repository at this point in the history
* setting up auth

* sticking auth on all the routes

* fixed up tests

* add util.getAuthstore fn

* rm fixed TODO

* use nodes native scrypt
  • Loading branch information
dholms authored Sep 23, 2022
1 parent 3a4e4c0 commit 1d136eb
Show file tree
Hide file tree
Showing 94 changed files with 846 additions and 363 deletions.
167 changes: 103 additions & 64 deletions packages/api/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* GENERATED CODE - DO NOT MODIFY
* Created Wed Sep 21 2022
* Created Thu Sep 22 2022
*/
import {
Client as XrpcClient,
Expand Down Expand Up @@ -65,6 +65,10 @@ export class ServiceClient {
this.xrpc = xrpcService
this.todo = new TodoNS(this)
}

setHeader(key: string, value: string): void {
this.xrpc.setHeader(key, value)
}
}

export class TodoNS {
Expand Down Expand Up @@ -388,39 +392,44 @@ export class BadgeRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialBadge.Record
record: TodoSocialBadge.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.badge'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.badge', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialBadge.Record
record: TodoSocialBadge.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.badge'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.badge', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.badge',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.badge', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -453,39 +462,44 @@ export class FollowRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialFollow.Record
record: TodoSocialFollow.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.follow'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.follow', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialFollow.Record
record: TodoSocialFollow.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.follow'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.follow', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.follow',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.follow', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -518,39 +532,44 @@ export class LikeRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialLike.Record
record: TodoSocialLike.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.like'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.like', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialLike.Record
record: TodoSocialLike.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.like'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.like', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.like',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.like', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -585,39 +604,44 @@ export class MediaEmbedRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialMediaEmbed.Record
record: TodoSocialMediaEmbed.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.mediaEmbed'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.mediaEmbed', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialMediaEmbed.Record
record: TodoSocialMediaEmbed.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.mediaEmbed'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.mediaEmbed', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.mediaEmbed',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.mediaEmbed', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -650,39 +674,44 @@ export class PostRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialPost.Record
record: TodoSocialPost.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.post'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.post', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialPost.Record
record: TodoSocialPost.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.post'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.post', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.post',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.post', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -715,39 +744,44 @@ export class ProfileRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialProfile.Record
record: TodoSocialProfile.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.profile'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.profile', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialProfile.Record
record: TodoSocialProfile.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.profile'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.profile', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.profile',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.profile', ...params },
undefined,
{ headers }
)
}
}

Expand Down Expand Up @@ -780,38 +814,43 @@ export class RepostRecord {

async create(
params: Omit<TodoAdxRepoCreateRecord.QueryParams, 'type'>,
record: TodoSocialRepost.Record
record: TodoSocialRepost.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.repost'
const res = await this._service.xrpc.call(
'todo.adx.repoCreateRecord',
{ type: 'todo.social.repost', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async put(
params: Omit<TodoAdxRepoPutRecord.QueryParams, 'type'>,
record: TodoSocialRepost.Record
record: TodoSocialRepost.Record,
headers?: Record<string, string>
): Promise<{ uri: string }> {
record.$type = 'todo.social.repost'
const res = await this._service.xrpc.call(
'todo.adx.repoPutRecord',
{ type: 'todo.social.repost', ...params },
record,
{ encoding: 'application/json' }
{ encoding: 'application/json', headers }
)
return res.data
}

async delete(
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>
params: Omit<TodoAdxRepoDeleteRecord.QueryParams, 'type'>,
headers?: Record<string, string>
): Promise<void> {
await this._service.xrpc.call('todo.adx.repoDeleteRecord', {
type: 'todo.social.repost',
...params,
})
await this._service.xrpc.call(
'todo.adx.repoDeleteRecord',
{ type: 'todo.social.repost', ...params },
undefined,
{ headers }
)
}
}
Loading

0 comments on commit 1d136eb

Please sign in to comment.