@gigscom/embeds-js
Version:
prebuilt embeddable UI components on top of the Gigs API for the Web
40 lines (36 loc) • 998 B
text/typescript
import { Porting, UpdatePortingBody } from '../types'
import { assert } from './assert'
type FetchSubOptions = {
/** Project id of the porting. */
project: string
/** User token. */
token: string
}
/**
* Patches the user's porting.
* @param prt The porting id.
* @param opts Additional options.
*/
export async function patchPorting(
prt: string,
data: UpdatePortingBody,
opts: FetchSubOptions,
) {
const res = await fetch(
`https://api.gigs.com/projects/${opts.project}/portings/${prt}`,
{
method: 'PATCH',
headers: {
authorization: `Bearer ${opts.token}`,
'content-type': 'application/json',
accept: 'application/json',
},
body: JSON.stringify(data),
},
)
const body = await res.json().catch(() => res.text())
assert(res.status !== 404, 'PRT_NOT_FOUND: Porting could not be found.')
assert(res.ok, `FETCH_FAILED: ${body?.message || body?.toString()}`)
const porting = body as Porting
return porting
}