mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-07 19:26:02 +00:00
Create / Update / Delete Challenge API-Routes
This commit is contained in:
parent
b4e8b95116
commit
f43eb684c8
7 changed files with 112 additions and 0 deletions
|
|
@ -25,6 +25,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.Group;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Items;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.LeaveChallengeBody;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChallenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChatMessageResult;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationRequest;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationResult;
|
||||
|
|
@ -811,6 +812,22 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
return apiService.leaveChallenge(challengeId, body).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Observable<Challenge> createChallenge(PostChallenge challenge){
|
||||
return apiService.createChallenge(challenge).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Challenge> updateChallenge(PostChallenge challenge){
|
||||
return apiService.updateChallenge(challenge.id, challenge).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> deleteChallenge(String challengeId){
|
||||
return apiService.deleteChallenge(challengeId).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> debugAddTenGems() {
|
||||
return apiService.debugAddTenGems().compose(configureApiCallObserver());
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package com.habitrpg.android.habitica.data;
|
||||
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Challenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChallenge;
|
||||
|
||||
import rx.Observable;
|
||||
|
||||
public interface ChallengeRepository extends BaseRepository {
|
||||
Observable<Challenge> createChallenge(PostChallenge challenge);
|
||||
Observable<Challenge> updateChallenge(PostChallenge challenge);
|
||||
Observable<Void> deleteChallenge(String challengeId);
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package com.habitrpg.android.habitica.data.implementation;
|
||||
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.data.local.ChallengeLocalRepository;
|
||||
import com.magicmicky.habitrpgwrapper.lib.api.ApiClient;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Challenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChallenge;
|
||||
|
||||
import rx.Observable;
|
||||
|
||||
|
||||
public class ChallengeRepositoryImpl extends BaseRepositoryImpl<ChallengeLocalRepository> implements ChallengeRepository {
|
||||
|
||||
public ChallengeRepositoryImpl(ChallengeLocalRepository localRepository, ApiClient apiClient) {
|
||||
super(localRepository, apiClient);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Challenge> createChallenge(PostChallenge challenge) {
|
||||
return apiClient.createChallenge(challenge);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Challenge> updateChallenge(PostChallenge challenge) {
|
||||
return apiClient.updateChallenge(challenge);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> deleteChallenge(String challengeId) {
|
||||
return apiClient.deleteChallenge(challengeId);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
package com.habitrpg.android.habitica.modules;
|
||||
|
||||
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.data.SetupCustomizationRepository;
|
||||
import com.habitrpg.android.habitica.data.TagRepository;
|
||||
import com.habitrpg.android.habitica.data.TaskRepository;
|
||||
import com.habitrpg.android.habitica.data.implementation.ChallengeRepositoryImpl;
|
||||
import com.habitrpg.android.habitica.data.implementation.SetupCustomizationRepositoryImpl;
|
||||
import com.habitrpg.android.habitica.data.implementation.TagRepositoryImpl;
|
||||
import com.habitrpg.android.habitica.data.implementation.TaskRepositoryImpl;
|
||||
|
|
@ -32,6 +34,7 @@ public class RepositoryModule {
|
|||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ChallengeLocalRepository provideChallengeLocalRepository(){
|
||||
return new DbFlowChallengeLocalRepository();
|
||||
}
|
||||
|
|
@ -47,6 +50,13 @@ public class RepositoryModule {
|
|||
return new TaskRepositoryImpl(localRepository, apiClient);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ChallengeRepository providesChallengeRepository(ChallengeLocalRepository localRepository, ApiClient apiClient) {
|
||||
return new ChallengeRepositoryImpl(localRepository, apiClient);
|
||||
}
|
||||
|
||||
|
||||
@Provides
|
||||
TagLocalRepository providesTagLocalRepository() {
|
||||
return new TagLocalRepositoryImpl();
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.Group;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Items;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.LeaveChallengeBody;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChallenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChatMessageResult;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationRequest;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationResult;
|
||||
|
|
@ -200,6 +201,10 @@ public interface ApiClient {
|
|||
|
||||
Observable<Void> leaveChallenge(String challengeId, LeaveChallengeBody body);
|
||||
|
||||
Observable<Challenge> createChallenge(PostChallenge challenge);
|
||||
Observable<Challenge> updateChallenge(PostChallenge challenge);
|
||||
Observable<Void> deleteChallenge(String challengeId);
|
||||
|
||||
//DEBUG: These calls only work on a local development server
|
||||
|
||||
Observable<Void> debugAddTenGems();
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.magicmicky.habitrpgwrapper.lib.models.Group;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.Items;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.LeaveChallengeBody;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChallenge;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PostChatMessageResult;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationRequest;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.PurchaseValidationResult;
|
||||
|
|
@ -287,6 +288,16 @@ public interface ApiService {
|
|||
@POST("challenges/{challengeId}/leave")
|
||||
Observable<HabitResponse<Void>> leaveChallenge(@Path("challengeId") String challengeId, @Body LeaveChallengeBody body);
|
||||
|
||||
@POST("challenges")
|
||||
Observable<HabitResponse<Challenge>> createChallenge(@Body PostChallenge challenge);
|
||||
|
||||
@PUT("challenges/{challengeId}")
|
||||
Observable<HabitResponse<Challenge>> updateChallenge(@Path("challengeId") String challengeId, @Body PostChallenge challenge);
|
||||
|
||||
@DELETE("challenges/{challengeId}")
|
||||
Observable<HabitResponse<Void>> deleteChallenge(@Path("challengeId") String challengeId);
|
||||
|
||||
|
||||
//DEBUG: These calls only work on a local development server
|
||||
|
||||
@POST("debug/add-ten-gems")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package com.magicmicky.habitrpgwrapper.lib.models;
|
||||
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.TasksOrder;
|
||||
|
||||
/**
|
||||
* Needs to be a separate Class, the normal Challenge has the group as Object
|
||||
* The Challenge for adding/updating just has the group as id
|
||||
*/
|
||||
public class PostChallenge {
|
||||
public String id;
|
||||
|
||||
public String name;
|
||||
|
||||
public String shortName;
|
||||
|
||||
public String description;
|
||||
|
||||
public String leaderName;
|
||||
|
||||
public String group;
|
||||
|
||||
public int prize;
|
||||
|
||||
public TasksOrder tasksOrder;
|
||||
}
|
||||
Loading…
Reference in a new issue