@ahamove/ahamove-js
TypeScript icon, indicating that this package has built-in type declarations

0.1.7 • Public • Published

@ahamove/ahamove-js

Ahamove JS SDK

Installation

npm install @ahamove/ahamove-js

Usage

Initialize SDK Client

import * as SDKClient from "@ahamove/ahamove-js";
import { Config } from '@ahamove/ahamove-js';

const sdkClient = new SDKClient.ClientModule(
  new Config({
    env: "staging",
    token?: "your_token",
    refreshToken?: "your_refresh_token",
    apiKey?: "your_api_key",
  })
);

or

import { SDKClient, Config } from '@ahamove/ahamove-js';

const sdkClient = new ClientModule(
  new Config({
    env: "staging",
    token?: "your_token",
    refreshToken?: "your_refresh_token",
    apiKey?: "your_api_key",
  })
);

Service

sdkClient.Service

Get services

Request
const services = await sdkClient.Service.getServiceTypes(params),
Using with @tanstack/react-query
export const useGetServiceTypes = (
  params: ServiceTypesParams,
  opts?: Omit<UseQueryOptions<Service[], DefaultQueryError>, 'queryKey'>
) =>
  useQuery<Service[], DefaultQueryError>({
    queryKey: [apiRoutes.service.serviceTypes, params],
    queryFn: ({ signal }) =>
      sdkClient.Service.getServiceTypes(params, { signal }),
    ...opts,
  });
Response

Promise of

Service[]

Order

sdkClient.Order

Estimate order

Payload
OrderPayloadBuilder.orderPayload()
  .withPath([
    {
      "name": "David",
      "mobile": "0999332223",
      "lat": 10.7696368,
      "lng": 106.703865,
      "address":
        "14 Tôn Thất Đạm, Phường Nguyễn Thái Bình, Quận 1, Hồ Chí Minh 700000, Việt Nam",
      "first_label": "14 Tôn Thất Đạm",
      "second_label":
        "Phường Nguyễn Thái Bình, Quận 1, Hồ Chí Minh 700000, Việt Nam",
    },
    {
      "name": "John Doe",
      "mobile": "+8498989999",
      "first_label": "Nguyễn Thiện Thành",
      "address":
        "Nguyễn Thiện Thành, Nguyễn Thiện Thành, Phường Hủ Thiêm, Thành phố Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam",
      "lat": 10.7704396,
      "lng": 106.7103919,
      "second_label":
        "Nguyễn Thiện Thành, Phường Hủ Thiêm, Thành phố Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam",
    },
  ])
  .withServices([
    {
      _id: "SGN-BIKE",
      requests: [
        {
          _id: "SGN-BIKE-SMS",
        },
        {
          _id: "SGN-BIKE-FRAGILE",
        },
        {
          _id: "SGN-BIKE-INSURANCE",
        },
      ],
    },
  ])
  .withPromoCode("BE_TESTING1")
  .withPaymentMethod("balance")
  .build("estimate");
Request
const estimate = await sdkClient.Order.estimateOrder(payload);
Using with @tanstack/react-query
export const useEstimateOrder = (
opts?: UseMutationOptions<
  EstimateOrderResponse[],
  DefaultQueryError,
  OrderPayload
>
) =>
useMutation<
  EstimateOrderResponse[],
  DefaultQueryError,
  OrderPayload
>({
  mutationKey: ['estimateOrderFn'],
  mutationFn: sdkClient.Order.estimate,
  ...opts,
});
Response

Promise of

EstimateOrderResponse[]

Create order

Payload
OrderPayloadBuilder.orderPayload()
    .withPath([
       {
    "name": "David",
    "mobile": "0999332223",
    "lat": 10.7696368,
    "lng": 106.703865,
    "address": "14 Tôn Thất Đạm, Phường Nguyễn Thái Bình, Quận 1, Hồ Chí Minh 700000, Việt Nam",
    "first_label": "14 Tôn Thất Đạm",
    "second_label": "Phường Nguyễn Thái Bình, Quận 1, Hồ Chí Minh 700000, Việt Nam"
  },
  {
    "name": "John Doe",
    "mobile": "+8498989999",
    "first_label": "Nguyễn Thiện Thành",
    "address": "Nguyễn Thiện Thành, Nguyễn Thiện Thành, Phường Hủ Thiêm, Thành phố Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam",
    "lat": 10.7704396,
    "lng": 106.7103919,
    "second_label": "Nguyễn Thiện Thành, Phường Hủ Thiêm, Thành phố Thủ Đức, Thành phố Hồ Chí Minh, Việt Nam",
  },
    ])
    .withServiceId('SGN-BIKE')
    .withTotalPay(123000); // total pay get from estimate order
    .withRequests([
      {
        _id: 'SGN-BIKE-SMS',
      },
      {
        _id: 'SGN-BIKE-FRAGILE',
      },
      {
        _id: 'SGN-BIKE-INSURANCE',
      },
    ])
    .withPromoCode('BE_TESTING1')
    .withPaymentMethod('balance')
    .build('create');
Request
const order = await sdkClient.Order.createOrder(payload);
Using with @tanstack/react-query
export const useCreateOrder = (
opts?: UseMutationOptions<
  CreateOrderResponse,
  DefaultQueryError,
  OrderPayload
>
) =>
useMutation<CreateOrderResponse, DefaultQueryError, OrderPayload>({
  mutationKey: ['createOrderFn'],
  mutationFn: sdkClient.Order.create,
  ...opts,
});
Response

Promise of

CreateOrderResponse;

Readme

Keywords

none

Package Sidebar

Install

npm i @ahamove/ahamove-js

Weekly Downloads

127

Version

0.1.7

License

none

Unpacked Size

317 kB

Total Files

208

Last publish

Collaborators

  • thangden
  • khoand2914
  • vunh-ahamove
  • lynkxyz
  • thucnc