@stackend/api
Version:
JS bindings to api.stackend.com
86 lines (75 loc) • 1.81 kB
text/typescript
/**
* Moderation statuses
*/
export enum ModerationStatus {
/**
* No moderation required 0
*/
NONE = 'NONE',
/**
* Approved by a moderator 1
*/
PASSED = 'PASSED',
/**
* Disapproved by a moderator 2
*/
NOT_PASSED = 'NOT_PASSED',
/**
* Pre moderation required 4
*/
PRE = 'PRE',
/**
* Post moderation required within the specified TTL 5
*/
POST = 'POST'
}
export default ModerationStatus;
const ModerationStatusNames = {
[]: 'Visible, not moderated',
[]: 'Disapproved',
[]: 'Approved',
[]: 'Post moderation',
[]: 'Hidden, requires moderation'
};
export type ModerationStatusCodes = 0 | 1 | 2 | 4 | 5;
/**
* Given a moderation status id, return the corresponding ModerationStatus
* @param n
*/
export function getModerationStatus(n: ModerationStatusCodes): ModerationStatus {
switch (n) {
case 0:
return ModerationStatus.NONE;
case 1:
return ModerationStatus.PASSED;
case 2:
return ModerationStatus.NOT_PASSED;
case 4:
return ModerationStatus.PRE;
case 5:
return ModerationStatus.POST;
default:
throw Error(n + ' is not a moderation status');
}
}
/**
* Get a human readable version of the moderation status
* @param m
*/
export function getModerationStatusName(m: ModerationStatus): string {
const x = ModerationStatusNames[m];
if (x) {
return x;
}
return ModerationStatusNames[ModerationStatus.NONE];
}
/**
* Maps from ModerationStatus to code
*/
export const ModerationStatusCode = {
[]: 0,
[]: 1,
[]: 2,
[]: 4,
[]: 5
};