mirror of
https://bitbucket.org/wisemapping/wisemapping-frontend.git
synced 2024-11-25 23:54:55 +01:00
Add decorator for client
This commit is contained in:
parent
fb2e4b3414
commit
8eddf5025b
@ -1,5 +1,6 @@
|
|||||||
import { sessionExpired } from "../../redux/clientSlice";
|
import { sessionExpired } from "../../redux/clientSlice";
|
||||||
import Client from "../client";
|
import Client from "../client";
|
||||||
|
import CacheDecoratorClient from "../client/cache-decorator-client";
|
||||||
import MockClient from "../client/mock-client";
|
import MockClient from "../client/mock-client";
|
||||||
import RestClient from "../client/rest-client";
|
import RestClient from "../client/rest-client";
|
||||||
|
|
||||||
@ -60,7 +61,9 @@ class _AppConfig {
|
|||||||
console.log('Warning:Service using mockservice client');
|
console.log('Warning:Service using mockservice client');
|
||||||
result = new MockClient();
|
result = new MockClient();
|
||||||
}
|
}
|
||||||
return result;
|
|
||||||
|
// Wrap with a cache decorator ...
|
||||||
|
return new CacheDecoratorClient(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const AppConfig = new _AppConfig();
|
const AppConfig = new _AppConfig();
|
||||||
|
@ -0,0 +1,113 @@
|
|||||||
|
import Client, {
|
||||||
|
AccountInfo,
|
||||||
|
BasicMapInfo,
|
||||||
|
ChangeHistory,
|
||||||
|
ImportMapInfo,
|
||||||
|
Label,
|
||||||
|
MapInfo,
|
||||||
|
NewUser,
|
||||||
|
Permission,
|
||||||
|
} from '..';
|
||||||
|
import { LocaleCode } from '../../app-i18n';
|
||||||
|
|
||||||
|
class CacheDecoratorClient implements Client {
|
||||||
|
private client: Client;
|
||||||
|
|
||||||
|
constructor(client: Client) {
|
||||||
|
this.client = client;
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteAccount(): Promise<void> {
|
||||||
|
return this.client.deleteAccount();
|
||||||
|
}
|
||||||
|
|
||||||
|
importMap(model: ImportMapInfo): Promise<number> {
|
||||||
|
return this.client.importMap(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
createMap(map: BasicMapInfo): Promise<number> {
|
||||||
|
return this.client.createMap(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteMaps(ids: number[]): Promise<void> {
|
||||||
|
return this.client.deleteMaps(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteMap(id: number): Promise<void> {
|
||||||
|
return this.client.deleteMap(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
renameMap(id: number, basicInfo: BasicMapInfo): Promise<void> {
|
||||||
|
return this.client.renameMap(id, basicInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchAllMaps(): Promise<MapInfo[]> {
|
||||||
|
return this.client.fetchAllMaps();
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchMapPermissions(id: number): Promise<Permission[]> {
|
||||||
|
return this.client.fetchMapPermissions(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
addMapPermissions(id: number, message: string, permissions: Permission[]): Promise<void> {
|
||||||
|
return this.client.addMapPermissions(id, message, permissions);
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteMapPermission(id: number, email: string): Promise<void> {
|
||||||
|
return this.client.deleteMapPermission(id, email);
|
||||||
|
}
|
||||||
|
|
||||||
|
duplicateMap(id: number, basicInfo: BasicMapInfo): Promise<number> {
|
||||||
|
return this.client.duplicateMap(id, basicInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateAccountLanguage(locale: LocaleCode): Promise<void> {
|
||||||
|
return this.client.updateAccountLanguage(locale);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateAccountPassword(pasword: string): Promise<void> {
|
||||||
|
return this.client.updateAccountPassword(pasword);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateAccountInfo(firstname: string, lastname: string): Promise<void> {
|
||||||
|
return this.client.updateAccountInfo(firstname, lastname);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateStarred(id: number, starred: boolean): Promise<void> {
|
||||||
|
return this.client.updateStarred(id, starred);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateMapToPublic(id: number, isPublic: boolean): Promise<void> {
|
||||||
|
return this.client.updateMapToPublic(id, isPublic);
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchLabels(): Promise<Label[]> {
|
||||||
|
return this.client.fetchLabels();
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteLabel(id: number): Promise<void> {
|
||||||
|
return this.client.deleteLabel(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchAccountInfo(): Promise<AccountInfo> {
|
||||||
|
return this.client.fetchAccountInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
registerNewUser(user: NewUser): Promise<void> {
|
||||||
|
return this.client.registerNewUser(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
resetPassword(email: string): Promise<void> {
|
||||||
|
return this.client.resetPassword(email);
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchHistory(id: number): Promise<ChangeHistory[]> {
|
||||||
|
return this.client.fetchHistory(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
revertHistory(id: number, cid: number): Promise<void> {
|
||||||
|
return this.client.revertHistory(id,cid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CacheDecoratorClient;
|
@ -92,7 +92,7 @@ interface Client {
|
|||||||
updateAccountInfo(firstname: string, lastname: string): Promise<void>;
|
updateAccountInfo(firstname: string, lastname: string): Promise<void>;
|
||||||
|
|
||||||
updateStarred(id: number, starred: boolean): Promise<void>;
|
updateStarred(id: number, starred: boolean): Promise<void>;
|
||||||
updateMapToPublic(id: number, starred: boolean): Promise<void>;
|
updateMapToPublic(id: number, isPublic: boolean): Promise<void>;
|
||||||
|
|
||||||
fetchLabels(): Promise<Label[]>;
|
fetchLabels(): Promise<Label[]>;
|
||||||
deleteLabel(id: number): Promise<void>;
|
deleteLabel(id: number): Promise<void>;
|
||||||
|
@ -235,11 +235,10 @@ export default class RestClient implements Client {
|
|||||||
updateMapToPublic(id: number, isPublic: boolean): Promise<void> {
|
updateMapToPublic(id: number, isPublic: boolean): Promise<void> {
|
||||||
const handler = (success: () => void, reject: (error: ErrorInfo) => void) => {
|
const handler = (success: () => void, reject: (error: ErrorInfo) => void) => {
|
||||||
axios
|
axios
|
||||||
.put(`${this.baseUrl}/c/restful/maps/${id}/publish`, isPublic, {
|
.put(`${this.baseUrl}/c/restful/maps/${id}/publish`, isPublic.toString(), {
|
||||||
headers: { 'Content-Type': 'text/plain' },
|
headers: { 'Content-Type': 'text/plain' },
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// All was ok, let's sent to success page ...;
|
|
||||||
success();
|
success();
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user