Add headers

This commit is contained in:
Hongbo Wu 2023-02-24 13:09:00 +08:00
parent c54ef1185f
commit 2e5e3bd19e
2 changed files with 36 additions and 13 deletions

View file

@ -12,9 +12,10 @@ export function integrationRouter() {
const router = express.Router()
// request token from pocket
router.post(
'/pocket/request-token',
'/pocket/auth',
cors<express.Request>(corsConfig),
async (req: express.Request, res: express.Response) => {
logger.info('pocket/request-token')
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
const token = (req.cookies.auth as string) || req.headers.authorization
const claims = await getClaimsByToken(token)
@ -23,7 +24,7 @@ export function integrationRouter() {
}
const consumerKey = env.pocket.consumerKey
const redirectUri = `${env.client.url}/settings/integrations:pocketAuthorizationFinished`
const redirectUri = `${env.client.url}/settings/integrations?state=pocketAuthorizationFinished`
try {
// make a POST request to Pocket to get a request token
const response = await axios.post<{ code: string }>(
@ -31,6 +32,12 @@ export function integrationRouter() {
{
consumer_key: consumerKey,
redirect_uri: redirectUri,
},
{
headers: {
'Content-Type': 'application/json',
'X-Accept': 'application/json',
},
}
)
const { code } = response.data

View file

@ -20,14 +20,24 @@ interface PocketItem {
export class PocketIntegration extends IntegrationService {
name = 'POCKET'
POCKET_API_URL = 'https://getpocket.com/v3'
headers = {
'Content-Type': 'application/json',
'X-Accept': 'application/json',
}
accessToken = async (token: string): Promise<string | null> => {
const url = `${this.POCKET_API_URL}/oauth/authorize`
try {
const response = await axios.post<{ access_token: string }>(url, {
consumer_key: env.pocket.consumerKey,
code: token,
})
const response = await axios.post<{ access_token: string }>(
url,
{
consumer_key: env.pocket.consumerKey,
code: token,
},
{
headers: this.headers,
}
)
return response.data.access_token
} catch (error) {
console.log('error validating pocket token', error)
@ -41,13 +51,19 @@ export class PocketIntegration extends IntegrationService {
): Promise<PocketResponse> => {
const url = `${this.POCKET_API_URL}/get`
try {
const response = await axios.post<PocketResponse>(url, {
consumer_key: env.pocket.consumerKey,
access_token: accessToken,
state: 'all',
detailType: 'simple',
since,
})
const response = await axios.post<PocketResponse>(
url,
{
consumer_key: env.pocket.consumerKey,
access_token: accessToken,
state: 'all',
detailType: 'simple',
since,
},
{
headers: this.headers,
}
)
return response.data
} catch (error) {
console.log('error retrieving pocket data', error)