@@ -2,13 +2,12 @@ import { Injectable } from '@angular/core';
22import { Actions , createEffect , ofType } from '@ngrx/effects' ;
33import { catchError , combineLatest , map , of , switchMap } from 'rxjs' ;
44import { UserService } from 'src/app/user/services/user.service' ;
5- import { UserState } from '../user' ;
65import {
76 fetchProfile ,
87 fetchProfileFailure ,
98 fetchProfileSuccess ,
109} from './profile.actions' ;
11- import { UserOrgsState , UserReposState } from './profile.state ' ;
10+ import { profileApiToUserStateMapping } from './profile.mappings ' ;
1211
1312@Injectable ( )
1413export class ProfileEffects {
@@ -22,49 +21,12 @@ export class ProfileEffects {
2221 this . userService . getUserRepos ( username ) ,
2322 ] ) . pipe (
2423 map ( ( [ userData , orgsData , reposData ] ) => {
25- const user : UserState = {
26- avatar : userData . avatar_url ,
27- bio : userData . bio ,
28- blog : userData . blog ,
29- company : userData . company ,
30- email : userData . email ,
31- followers : userData . followers ,
32- following : userData . following ,
33- location : userData . location ,
34- name : userData . name ,
35- twitterUsername : userData . twitter_username ,
36- username : userData . login ,
37- type : userData . type ,
38- } ;
39- const orgs : UserOrgsState [ ] = orgsData . map ( ( org ) => ( {
40- id : org . id ,
41- login : org . login ,
42- avatar_url : org . avatar_url ,
43- } ) ) ;
44- const repos : UserReposState [ ] = reposData . map ( ( repo ) => ( {
45- name : repo . name ,
46- description : repo . description ,
47- language : repo . language ,
48- stargazers_count : repo . stargazers_count ,
49- forks_count : repo . forks_count ,
50- private : repo . private ,
51- updated_at : repo . updated_at ,
52- fork : repo . fork ,
53- archived : repo . archived ,
54- license : repo . license
55- ? {
56- key : repo . license . key ,
57- name : repo . license . name ,
58- spdx_id : repo . license . spdx_id ,
59- url : repo . license . url ,
60- node_id : repo . license . node_id ,
61- }
62- : null ,
63- owner : {
64- login : repo . owner . login ,
65- } ,
66- } ) ) ;
67- return fetchProfileSuccess ( { data : { user, orgs, repos } } ) ;
24+ const data = profileApiToUserStateMapping (
25+ userData ,
26+ orgsData ,
27+ reposData ,
28+ ) ;
29+ return fetchProfileSuccess ( { data } ) ;
6830 } ) ,
6931 catchError ( ( error ) => {
7032 console . error ( error ) ;
0 commit comments