client-data.service.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { Observable } from 'rxjs';
  2. import {
  3. GetNetworkStatus,
  4. GetUiState,
  5. GetUserStatus,
  6. LanguageCode,
  7. LogIn,
  8. LogInVariables,
  9. LogOut,
  10. RequestCompleted,
  11. RequestStarted,
  12. SetUiLanguage,
  13. SetUiLanguageVariables,
  14. } from 'shared/generated-types';
  15. import {
  16. LOG_IN,
  17. LOG_OUT,
  18. REQUEST_COMPLETED,
  19. REQUEST_STARTED,
  20. SET_UI_LANGUAGE,
  21. } from '../mutations/local-mutations';
  22. import { GET_NEWTORK_STATUS, GET_UI_STATE, GET_USER_STATUS } from '../queries/local-queries';
  23. import { QueryResult } from '../types/query-result';
  24. import { BaseDataService } from './base-data.service';
  25. export class ClientDataService {
  26. constructor(private baseDataService: BaseDataService) {}
  27. startRequest(): Observable<RequestStarted> {
  28. return this.baseDataService.mutate<RequestStarted>(REQUEST_STARTED);
  29. }
  30. completeRequest(): Observable<RequestCompleted> {
  31. return this.baseDataService.mutate<RequestCompleted>(REQUEST_COMPLETED);
  32. }
  33. getNetworkStatus(): QueryResult<GetNetworkStatus> {
  34. return this.baseDataService.query<GetNetworkStatus>(GET_NEWTORK_STATUS);
  35. }
  36. loginSuccess(username: string): Observable<LogIn> {
  37. return this.baseDataService.mutate<LogIn, LogInVariables>(LOG_IN, {
  38. username,
  39. loginTime: Date.now().toString(),
  40. });
  41. }
  42. logOut(): Observable<LogOut> {
  43. return this.baseDataService.mutate(LOG_OUT);
  44. }
  45. userStatus(): QueryResult<GetUserStatus> {
  46. return this.baseDataService.query<GetUserStatus>(GET_USER_STATUS);
  47. }
  48. uiState(): QueryResult<GetUiState> {
  49. return this.baseDataService.query<GetUiState>(GET_UI_STATE);
  50. }
  51. setUiLanguage(languageCode: LanguageCode): Observable<SetUiLanguage> {
  52. return this.baseDataService.mutate<SetUiLanguage, SetUiLanguageVariables>(SET_UI_LANGUAGE, {
  53. languageCode,
  54. });
  55. }
  56. }