Skip to content

Instantly share code, notes, and snippets.

@e06widu
Created June 29, 2020 17:49
Show Gist options
  • Save e06widu/5f06c67b03a6afe94e9fa3536323abc5 to your computer and use it in GitHub Desktop.
Save e06widu/5f06c67b03a6afe94e9fa3536323abc5 to your computer and use it in GitHub Desktop.
Process result from API
/**
* Process responce before send
*/
export class ProcessorResponse<T> {
statusCode!: number ;
body!: T;
headers!: { [key: string]: string };
/**
* Process valis responce
* @param body Success responce body
* @param statusCode Http status code
*/
static createValidResponse<T>(body: T, statusCode: number): ProcessorResponse<T> {
const response = new ProcessorResponse<T>();
response.body = body;
response.statusCode = statusCode;
response.headers = {
'Content-Type': 'application/json'
};
return response;
}
/**
* process Invalid responce
* @param message Message needs to display
* @param statusCode Http status code
*/
static createInvalidResponse(message: string, statusCode: number): ProcessorResponse<any> {
const response = new ProcessorResponse<any>();
response.body = {
message
};
response.statusCode = statusCode;
response.headers = {
'Content-Type': 'application/json'
};
return response;
}
get isValid(): boolean { return this.statusCode >= 200 && this.statusCode < 300; }
private constructor() { }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment