diff options
author | Thomas F. K. Jorna <[email protected]> | 2021-07-23 15:24:35 +0200 |
---|---|---|
committer | Thomas F. K. Jorna <[email protected]> | 2021-07-23 15:24:35 +0200 |
commit | 356381d14cb1ff3cbd39c7e396dd14379336451b (patch) | |
tree | a03e9b2534600bde7b3b781411b5b03f8134904b /app_expo/services/api/api.ts | |
parent | 7aa007f158a52b41494049a1202938fc97813ec1 (diff) | |
parent | 73308af061af5e17ac7d4a73fa027a2f303c70dd (diff) |
resolving merge conflicts
Diffstat (limited to 'app_expo/services/api/api.ts')
-rw-r--r-- | app_expo/services/api/api.ts | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/app_expo/services/api/api.ts b/app_expo/services/api/api.ts deleted file mode 100644 index 4093d34..0000000 --- a/app_expo/services/api/api.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { ApisauceInstance, create, ApiResponse } from 'apisauce' -import { getGeneralApiProblem } from './api-problem' -import { ApiConfig, DEFAULT_API_CONFIG } from './api-config' -import * as Types from './api.types' - -/** - * Manages all requests to the API. - */ -export class Api { - /** - * The underlying apisauce instance which performs the requests. - */ - apisauce: ApisauceInstance - - /** - * Configurable options. - */ - config: ApiConfig - - /** - * Creates the api. - * - * @param config The configuration to use. - */ - constructor(config: ApiConfig = DEFAULT_API_CONFIG) { - this.config = config - } - - /** - * Sets up the API. This will be called during the bootup - * sequence and will happen before the first React component - * is mounted. - * - * Be as quick as possible in here. - */ - setup() { - // construct the apisauce instance - this.apisauce = create({ - baseURL: this.config.url, - timeout: this.config.timeout, - headers: { - Accept: 'application/json', - }, - }) - } - - /** - * Gets a list of users. - */ - async getUsers(): Promise<Types.GetUsersResult> { - // make the api call - const response: ApiResponse<any> = await this.apisauce.get(`/users`) - - // the typical ways to die when calling an api - if (!response.ok) { - const problem = getGeneralApiProblem(response) - if (problem) return problem - } - - const convertUser = (raw) => { - return { - id: raw.id, - name: raw.name, - } - } - - // transform the data into the format we are expecting - try { - const rawUsers = response.data - const resultUsers: Types.User[] = rawUsers.map(convertUser) - return { kind: 'ok', users: resultUsers } - } catch { - return { kind: 'bad-data' } - } - } - - /** - * Gets a single user by ID - */ - - async getUser(id: string): Promise<Types.GetUserResult> { - // make the api call - const response: ApiResponse<any> = await this.apisauce.get(`/users/${id}`) - - // the typical ways to die when calling an api - if (!response.ok) { - const problem = getGeneralApiProblem(response) - if (problem) return problem - } - - // transform the data into the format we are expecting - try { - const resultUser: Types.User = { - id: response.data.id, - name: response.data.name, - } - return { kind: 'ok', user: resultUser } - } catch { - return { kind: 'bad-data' } - } - } -} |