//
//
import {
ResourceUtils,
Resource,
InstanceResource,
HasInstanceResource,
GetEnabled,
UpdateEnabled,
CreateEnabled,
DeleteEnabled,
ListEnabled,
Paginated,
ListResponse,
EmptyResponse,
Signable,
SigningUtils } from '../../../lib/core-sdk'
export interface Post{
id : number
userId : number,
title : string,
body : string
}
export class PostsResource extends Resource implements
HasInstanceResource,
ListEnabled,
CreateEnabled {
withId = (id: any):PostResource =>{
return new PostResource(id,this.getPath(),this.getClient());
};
list = () : Promise> =>{
return ResourceUtils.CallListWithSuffix(this,null,null,null);
}
create = (payload: CreatePostRequest): Promise => {
return ResourceUtils.CallCreate(this, payload).then((response: CreatePostResponse) => {
SigningUtils.createSigningObject(response, this.getClient(), `${this.getClient().getPath()}/posts`);
return response;
});
}
}
export class PostResource extends InstanceResource
implements
GetEnabled {
get = ():Promise =>{
return ResourceUtils.CallGet(this,null);
}
delete = () : Promise => {
return ResourceUtils.CallDelete(this,null);
}
}
export interface CreatePostRequest {
userId: number;
id: number;
title: string;
body: string;
}
export interface CreatePostResponse extends CreatePostRequest, Signable {}