mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
36 lines
881 B
TypeScript
36 lines
881 B
TypeScript
import { PubsubClient } from '../datalayer/pubsub'
|
|
import { UserData } from '../datalayer/user/model'
|
|
import { homePageURL } from '../env'
|
|
import { SaveResult, SaveUrlInput } from '../generated/graphql'
|
|
import { DataModels } from '../resolvers/types'
|
|
import { createPageSaveRequest } from './create_page_save_request'
|
|
|
|
type SaveContext = {
|
|
pubsub: PubsubClient
|
|
models: DataModels
|
|
}
|
|
|
|
export const saveUrl = async (
|
|
ctx: SaveContext,
|
|
saver: UserData,
|
|
input: SaveUrlInput
|
|
): Promise<SaveResult> => {
|
|
try {
|
|
await createPageSaveRequest(
|
|
saver.id,
|
|
input.url,
|
|
ctx.models,
|
|
'high',
|
|
input.clientRequestId
|
|
)
|
|
} catch (error) {
|
|
console.log('error enqueuing request', error)
|
|
}
|
|
|
|
return {
|
|
clientRequestId: input.clientRequestId,
|
|
url: `${homePageURL()}/${saver.profile.username}/links/${
|
|
input.clientRequestId
|
|
}`,
|
|
}
|
|
}
|