@ahamove/ahamove-js
v0.1.7
Published
Ahamove JS SDK
Downloads
82
Keywords
Readme
@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;