package org.estgroup.phphub.common.internal.di.module;
import android.content.Context;
import com.github.pwittchen.prefser.library.Prefser;
import org.estgroup.phphub.common.internal.di.qualifier.ForApplication;
import org.estgroup.phphub.common.provider.GuestTokenProvider;
import org.estgroup.phphub.model.TokenModel;
import org.estgroup.phphub.model.TopicModel;
import org.estgroup.phphub.model.UserModel;
import static org.estgroup.phphub.common.qualifier.AuthType.*;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@Module(includes = AppModule.class)
public class ApiModule {
@Provides
@Singleton
@Named(AUTH_TYPE_USER)
TopicModel provideTopicModelByAuth(@ForApplication Context context) {
return new TopicModel(context, null);
}
@Provides
@Singleton
TopicModel provideTopicModel(@ForApplication Context context, Prefser prefser) {
return new TopicModel(context, new GuestTokenProvider(prefser));
}
@Provides
@Singleton
TokenModel provideTokenModel(@ForApplication Context context) {
return new TokenModel(context, null);
}
@Provides
@Singleton
@Named(AUTH_TYPE_USER)
UserModel provideUserModelByAuth(@ForApplication Context context) {
return new UserModel(context, null);
}
@Provides
@Singleton
UserModel provideUserModelByUser(@ForApplication Context context, Prefser prefser) {
return new UserModel(context, new GuestTokenProvider(prefser));
}
}