Skip to content

Commit

Permalink
feat(subscriptions): log subscriptions list per extension on subscrib…
Browse files Browse the repository at this point in the history
…e and unsubscribe
  • Loading branch information
lutangar committed Feb 6, 2020
1 parent c2e2f0d commit 166af2c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
11 changes: 11 additions & 0 deletions src/api/postSubscriptions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { post } from './call';

const postSubscriptions = ({
extensionId,
subscriptions = []
}: {
extensionId: number;
subscriptions: number[];
}): Promise<void> => post(`subscriptions/${extensionId}`, subscriptions);

export default postSubscriptions;
4 changes: 3 additions & 1 deletion src/app/background/sagas/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import sendInstallationDetailsToOptions from './sendInstallationDetailsToOptions
import setup from './setup.saga';
import tos from './tos.saga';
import awaitRehydratationSaga from './lib/awaitRehydratation.saga';
import subscriptionsSaga from './subscriptions';
import tracking from './tracking';
import MatomoTracker from 'app/matomo';

Expand Down Expand Up @@ -47,6 +48,7 @@ export default function* rootSaga() {
fork(setup),
fork(error),
fork(tos),
fork(tracking(tracker))
fork(tracking(tracker)),
fork(subscriptionsSaga)
]);
}
24 changes: 24 additions & 0 deletions src/app/background/sagas/subscriptions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { SagaIterator } from 'redux-saga';
import { call, select, put, takeLatest } from 'redux-saga/effects';
import { createErrorAction, SUBSCRIBE, UNSUBSCRIBE } from 'app/actions';
import { getUserId } from 'app/background/selectors/user';
import { getSubscriptions } from 'app/background/selectors/subscriptions.selectors';
import postSubscriptions from 'api/postSubscriptions';

function* postSubscriptionsSaga(): SagaIterator {
try {
const extensionId = yield select(getUserId);
const subscriptions = yield select(getSubscriptions);

yield call(postSubscriptions, {
extensionId,
subscriptions
});
} catch (e) {
yield put(createErrorAction()(e));
}
}

export default function*() {
yield takeLatest([SUBSCRIBE, UNSUBSCRIBE], postSubscriptionsSaga);
}

0 comments on commit 166af2c

Please sign in to comment.