Commit 9e55994e authored by Mark Harding's avatar Mark Harding

(fix): cast to activities if in top feeds

parent 9f1dc904
No related merge requests found
Pipeline #70505601 running with stages
......@@ -17,6 +17,7 @@ type EntityObservables = Map<string, EntityObservable>
export class EntitiesService {
entities: EntityObservables = new Map<string, EntityObservable>();
castToActivites: boolean = false;
constructor(
protected client: Client,
......@@ -91,6 +92,16 @@ export class EntitiesService {
return this.entities.get(urn);
}
/**
* Cast to activities or not
* @param cast boolean
* @return EntitiesService
*/
setCastToActivities(cast: boolean): EntitiesService {
this.castToActivites = cast;
return this;
}
/**
* Fetch entities
* @param urns string[]
......@@ -99,7 +110,10 @@ export class EntitiesService {
async fetch(urns: string[]): Promise<Array<Object>> {
try {
const response: any = await this.client.get('api/v2/entities/', { urns });
const response: any = await this.client.get('api/v2/entities/', {
urns,
as_activities: this.castToActivites ? 1 : 0,
});
if (!response.entities.length) {
for (const urn of urns) {
......
......@@ -41,6 +41,7 @@ export class FeedsService {
pageSize: Observable<number>;
endpoint: string = '';
params: any = { sync: 1 };
castToActivities: boolean = false;
rawFeed: BehaviorSubject<Object[]> = new BehaviorSubject([]);
feed: Observable<BehaviorSubject<Object>[]>;
......@@ -64,7 +65,9 @@ export class FeedsService {
switchMap(async feed => {
return feed.slice(0, await this.pageSize.pipe(first()).toPromise())
}),
switchMap(feed => this.entitiesService.getFromFeed(feed)),
switchMap(feed => this.entitiesService
.setCastToActivities(this.castToActivities)
.getFromFeed(feed)),
tap(feed => {
if (feed.length) // We should have skipped but..
this.inProgress.next(false);
......@@ -103,9 +106,19 @@ export class FeedsService {
return this;
}
setCastToActivities(cast: boolean): FeedsService {
this.castToActivities = cast;
return this;
}
fetch(): FeedsService {
this.inProgress.next(true);
this.client.get(this.endpoint, {...this.params, ...{ limit: 150 }}) // Over 12 scrolls
this.client.get(this.endpoint, {
...this.params,
...{
limit: 150, // Over 12 scrolls
as_activities: this.castToActivities ? 1 : 0,
}})
.then((response: any) => {
this.inProgress.next(false);
this.rawFeed.next(response.entities);
......
......@@ -214,6 +214,7 @@ export class NewsfeedSortedComponent implements OnInit, OnDestroy {
nsfw,
})
.setLimit(12)
.setCastToActivities(true)
.fetch();
} catch (e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment