// GENERATED CODE - DO NOT MODIFY BY HAND

// **************************************************************************
// ServiceGenerator
// **************************************************************************

import 'dart:convert';

import 'dart:io';

import 'package:rxdart/rxdart.dart';

import 'package:dio/dio.dart';

import 'package:flutter/foundation.dart';

import 'package:gmalpha_flutter/PrestigeModel/service/remote/entity/PrestigeEntity.dart';

import 'package:gmalpha_flutter/commonModel/net/DioUtil.dart';

class PrestigeApiImpl {
  factory PrestigeApiImpl() => _sharedInstance();

  static PrestigeApiImpl _instance;

  PrestigeApiImpl._() {}

  static PrestigeApiImpl _sharedInstance() {
    if (_instance == null) {
      _instance = PrestigeApiImpl._();
    }
    return _instance;
  }

  Observable<PrestigeEntity> getReputations(int userId) {
    return Observable.fromFuture(
            DioUtil().get('api/v1/reputations', data: {'user_id': userId}))
        .flatMap((value) {
      if (value != null && value.statusCode == 200) {
        return Observable.fromFuture(
            compute(pasePrestigeEntity, value.toString()));
      } else {
        return Observable.fromFuture(null);
      }
    });
  }
}

PrestigeEntity pasePrestigeEntity(String value) {
  return PrestigeEntity.fromJson(json.decode(value));
}
