Skip to content

Commit

Permalink
feat(curentusersflow): provide current user configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
ElonH committed May 21, 2020
1 parent 0598d79 commit 57ff2be
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 17 deletions.
9 changes: 9 additions & 0 deletions src/app/@dataflow/extra/users-flow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,12 @@ export abstract class UsersFlow extends BareFlow<FlowInNode, UsersFlowOutNode> {
localStorage.removeItem('users');
}
}

export interface CurrentUserFlowOutNode extends IUser {}

export abstract class CurrentUserFlow extends BareFlow<UsersFlowOutNode, CurrentUserFlowOutNode> {
// public prerequest$: Observable<CombErr<UsersFlowOutNode>>;
protected request(pre: CombErr<UsersFlowOutNode>): Observable<CombErr<CurrentUserFlowOutNode>> {
return of([{ ...pre[0].loginUser }, []]);
}
}
1 change: 1 addition & 0 deletions src/app/@dataflow/rclone/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from './post-flow';
export * from './noop-auth-flow';
export * from './core-stats-flow';
export * from './list-remotes-flow';
5 changes: 2 additions & 3 deletions src/app/@dataflow/rclone/list-remotes-flow.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
import { PostFlow } from './post-flow';
import { NoopAuthFlowSupNode } from './noop-auth-flow';
import { IRcloneServer } from '../extra';
import { CurrentUserFlowOutNode } from '../extra';
import { AjaxFlowInteralNode } from '../core/ajax-flow';
import { CombErr } from '../core';
import { Observable } from 'rxjs';

export interface ListRemotesOutNode {
remotes: string[];
}

export interface ListRemotesSupNode extends ListRemotesOutNode, NoopAuthFlowSupNode {}

export abstract class ListRemotesFlow extends PostFlow<IRcloneServer, ListRemotesOutNode> {
export abstract class ListRemotesFlow extends PostFlow<CurrentUserFlowOutNode, ListRemotesOutNode> {
// public prerequest$: Observable<CombErr<IRcloneServer>>;
protected cmd: string = 'config/listremotes';
protected params: object = {};
Expand Down
15 changes: 2 additions & 13 deletions src/app/pages/manager/homeMode/homeMode.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { UsersService } from '../../users.service';
import { ListRemotesFlow } from 'src/app/@dataflow/rclone/list-remotes-flow';
import { map, combineLatest, tap } from 'rxjs/operators';
import { CombErr } from 'src/app/@dataflow/core';
import { IRcloneServer } from 'src/app/@dataflow/extra';
import { ListRemotesFlow } from 'src/app/@dataflow/rclone';
import { Subject } from 'rxjs';

@Component({
Expand All @@ -27,15 +24,7 @@ export class HomeModeComponent implements OnInit {
ngOnInit() {
const outer = this;
this.remotesFlow$ = new (class extends ListRemotesFlow {
public prerequest$ = outer.remotesTrigger.pipe(
combineLatest(outer.usersService.usersFlow$.getOutput()),
map(
([_, x]): CombErr<IRcloneServer> => {
if (x[1].length !== 0) return [{}, x[1]] as any;
return [x[0].loginUser, []];
}
)
);
public prerequest$ = outer.usersService.currentUserFlow$.getOutput();
})();
this.remotesFlow$.deploy();

Expand Down
8 changes: 7 additions & 1 deletion src/app/pages/users.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import { UsersFlow } from '../@dataflow/extra';
import { UsersFlow, CurrentUserFlow } from '../@dataflow/extra';
import { CombErr, FlowInNode } from '../@dataflow/core';
import { map } from 'rxjs/operators';

Expand All @@ -10,6 +10,7 @@ import { map } from 'rxjs/operators';
export class UsersService {
public usersTrigger = new Subject<number>();
public usersFlow$: UsersFlow;
public currentUserFlow$: CurrentUserFlow;

constructor() {
const outer = this;
Expand All @@ -18,6 +19,11 @@ export class UsersService {
})();
this.usersFlow$.deploy();

this.currentUserFlow$ = new (class extends CurrentUserFlow {
public prerequest$ = outer.usersFlow$.getOutput();
})();
this.currentUserFlow$.deploy();

this.usersTrigger.next(1);
}
}

0 comments on commit 57ff2be

Please sign in to comment.