@stackend/api
Version:
JS bindings to api.stackend.com
92 lines • 2.83 kB
TypeScript
import { XcapJsonResult, Thunk, XcapOptionalParameters } from '../api';
import { VoteSummary } from '../vote';
import XcapObject from '../api/XcapObject';
import DescriptionAware from '../api/DescriptionAware';
import CreatedDateAware from '../api/CreatedDateAware';
import CreatorUserIdAware from '../api/CreatorUserIdAware';
import ModifiedDateAware from '../api/ModifiedDateAware';
import ReferenceIdAware from '../api/ReferenceIdAware';
import ReferenceAble from '../api/ReferenceAble';
/**
* Xcap Blog poll api constants and methods.
*
* @since 23 mar 2017
*/
export interface Answer {
id: number;
answerId: number;
order: number;
answer: string;
votes: number;
votesPercent: number;
}
export interface Poll extends XcapObject, DescriptionAware, CreatedDateAware, CreatorUserIdAware, ModifiedDateAware, ReferenceIdAware<XcapObject>, ReferenceAble {
__type: 'se.josh.xcap.poll.Poll';
startDate: number;
endDate: number;
view: string;
open: boolean;
visible: boolean;
votes: number;
answers: Array<Answer>;
}
export interface GetPollResult extends XcapJsonResult {
voteSummary: VoteSummary;
poll: Poll;
hasVoted: boolean;
pollAnswerVote: number;
canVote: boolean;
votesByAnswer: {
[id: string]: number;
};
votesPercentByAnswer: {
[id: string]: number;
};
hidden: false;
}
/**
* Get a poll and the results.
*
* @param referenceId {number} Reference id. Required.
*/
export declare function getPoll({ referenceId }: {
referenceId: number;
} & XcapOptionalParameters): Thunk<Promise<GetPollResult>>;
export interface VoteResult extends XcapJsonResult {
poll: Poll;
referenceId: number;
answerId: number;
}
/**
* Vote for a poll option.
*
* Requires an authorized user.
*
* @param referenceId {number} Reference id. Required.
* @param answerId {number} The answer id. Required.
*/
export declare function vote({ referenceId, answerId }: {
referenceId: number;
answerId: number;
} & XcapOptionalParameters): Thunk<Promise<VoteResult>>;
/**
* Edit/create a poll .
*
* Requires an authorized user.
*
* @param referenceId {number} Reference id. Required.
* @param startDate Start date. (optional).
* @param endDate End date. (optional).
* @param description {String} Description
* @param view {String} View (optional, default "circle")
* @param pollAnswers {Object} The answers: Map from id to description. { 1: "Yes", 2: "No", .... }
*/
export declare function edit({ referenceId, startDate, endDate, description, view, pollAnswers }: {
referenceId: number;
startDate?: string;
endDate?: string;
description: string;
view?: string;
pollAnswers: any;
} & XcapOptionalParameters): Thunk<Promise<XcapJsonResult>>;
//# sourceMappingURL=index.d.ts.map