GITBOOK-17: No subject

This commit is contained in:
Moe Poi ~ 2023-12-02 10:32:52 +00:00 committed by gitbook-bot
parent 054db47c17
commit 042f86cc49
No known key found for this signature in database
GPG key ID: 07D2180C7B12D0FF
8 changed files with 823 additions and 0 deletions

17
README.md Normal file
View file

@ -0,0 +1,17 @@
# Welcome to Nekoya API!
## Want to jump right in?
Feeling like an eager beaver? Jump in to the Get Started docs and get making your first request:
{% content-ref url="get-started.md" %}
[get-started.md](get-started.md)
{% endcontent-ref %}
## Want to deep dive?
Dive a little deeper and start exploring our API reference to get an idea of everything that's possible with the API:
{% content-ref url="reference/api-reference/" %}
[api-reference](reference/api-reference/)
{% endcontent-ref %}

12
SUMMARY.md Normal file
View file

@ -0,0 +1,12 @@
# Table of contents
* [Welcome to Nekoya API!](README.md)
* [Get Started](get-started.md)
## Reference
* [API Reference](reference/api-reference/README.md)
* [Product](reference/api-reference/product.md)
* [Authentication](reference/api-reference/authentication.md)
* [Transaction](reference/api-reference/transaction.md)
* [Subscribe](reference/api-reference/subscribe.md)

7
get-started.md Normal file
View file

@ -0,0 +1,7 @@
# Get Started
## Get your API keys
Your API requests are authenticated using API keys. Any request that doesn't include an API key will return an error.
You can [contact us](mailto:nekoya@chocola.dev) to generate the API key.

View file

@ -0,0 +1,35 @@
# API Reference
Dive into the specifics of each API endpoint by checking out our complete documentation.
## Product
Everything related to product.
{% content-ref url="product.md" %}
[product.md](product.md)
{% endcontent-ref %}
## Authentication
Everything related to authentication.
{% content-ref url="authentication.md" %}
[authentication.md](authentication.md)
{% endcontent-ref %}
## Transaction
Everything related to transaction.
{% content-ref url="transaction.md" %}
[transaction.md](transaction.md)
{% endcontent-ref %}
## Subscribe
Everything related to subscribe.
{% content-ref url="subscribe.md" %}
[subscribe.md](subscribe.md)
{% endcontent-ref %}

View file

@ -0,0 +1,442 @@
# Authentication
## Register
{% swagger method="post" path="/register" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" required="true" name="email" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="first_name" required="true" %}
First Name
{% endswagger-parameter %}
{% swagger-parameter in="body" name="last_name" required="true" %}
Last Name
{% endswagger-parameter %}
{% swagger-parameter in="header" required="true" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Register Verification Sent ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% endswagger %}
## Login
{% swagger method="post" path="/login" baseUrl="https://nekoya.moe.team/api" summary="Account without 2FA Enabled" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ua" %}
User Agent
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ip" %}
IP Address
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"id": 29,
"first_name": "Celia",
"last_name": "Claire",
"email": "celia@moe.team",
"verify": true,
"otp": false,
"session_token": "2RBHSp3I8jjDzjuKaXXDWadJqRkJ1M3Q8nTmF9mioAL73OVZO8zc73sg4VBCVLQeXQRtbXZ6gQ5r1vjupkzoZP1HiRBXgHw74O7eKki6SPHIDYuxVfAdn6jPZ76HRRqI1jR1aKOdhwMq5RgOK7eMB5HEUKNu6gHIQkncoxRxz1eh5QGwGa9vYPW7TE3izEDbkGEqlIbnGf6O9foTty5HiJilPLtgVFvHUSoN6t7yDMXy2NjI0a4bKu5Pb6de0inh"
}
```
{% endswagger-response %}
{% swagger-response status="204: No Content" description="" %}
```javascript
{
"message": "Sorry You haven't verified your email"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/login" baseUrl="https://nekoya.moe.team/api" summary="Account with 2FA Enabled" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ua" %}
User Agent
{% endswagger-parameter %}
{% swagger-parameter in="body" name="ip" %}
IP Address
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "OTP Verification Sent ~",
"otp": true,
"token": "Xb5VNMMfoWZyHf22EMS3MjmgFdjDnAPTM3OoCh3CYP8sF6ospVzAaTjCPVM5FM5c"
}
```
{% endswagger-response %}
{% swagger-response status="204: No Content" description="" %}
```javascript
{
"message": "Sorry You haven't verified your email"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## OTP
{% swagger method="post" path="/otp-submit" baseUrl="https://nekoya.moe.team/api" summary="Submit OTP" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-parameter in="body" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="body" name="code" required="true" type="" %}
OTP Code (6 digit)
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"id": 29,
"first_name": "Celia",
"last_name": "Claire",
"email": "celia@moe.team",
"verify": true,
"otp": true,
"session_token": "2RBHSp3I8jjDzjuKaXXDWadJqRkJ1M3Q8nTmF9mioAL73OVZO8zc73sg4VBCVLQeXQRtbXZ6gQ5r1vjupkzoZP1HiRBXgHw74O7eKki6SPHIDYuxVfAdn6jPZ76HRRqI1jR1aKOdhwMq5RgOK7eMB5HEUKNu6gHIQkncoxRxz1eh5QGwGa9vYPW7TE3izEDbkGEqlIbnGf6O9foTty5HiJilPLtgVFvHUSoN6t7yDMXy2NjI0a4bKu5Pb6de0inh"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="403: Forbidden" description="" %}
```javascript
{
"message": "Invalid OTP Code"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/otp-toggle" baseUrl="https://nekoya.moe.team/api" summary="Enable / Disable OTP" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Success set OTP to true",
"otp": true
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## Verify Account (Mail)
{% swagger method="post" path="/verify-mail" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Verified ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="403: Forbidden" description="" %}
```javascript
{
"message": "Forbidden"
}
```
{% endswagger-response %}
{% endswagger %}
## Reset Password
{% swagger method="post" path="/request-reset-password" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Reset Password Verification Sent ~"
}
```
{% endswagger-response %}
{% swagger-response status="205: Reset Content" description="" %}
```javascript
{
"message": "Sorry Your email is not registered in our system"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% endswagger %}
{% swagger method="post" path="/reset-password" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="password" required="true" %}
1 - 64 string characters
{% endswagger-parameter %}
{% swagger-parameter in="query" name="token" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" required="true" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
{
"message": "Success Reset Password ~"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## Active Sessions
{% swagger method="post" path="/sessions" baseUrl="https://nekoya.moe.team/api" summary="Get All of Active Sessions" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" required="true" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
[
{
"user_agent": "Mozilla/5.0 (Linux; Android 12; M2012K11AG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Mobile Safari/537.36",
"ip": "12.26.220.109",
"session": "5ES9v6ekrGuuuKEDOpk2COGlmchHldplY10PnIIOuMUVpw32FsJy9aniQyX7RzeVan3muRWlKf02pWnIua127PKF0uPLxEccic8x5VFlN3OsyNFeJM8mdKAduRhwCIcID57vBanPrrYQ5vqv0FGbWcl29rtXk40YDUFvYoqy2VtBx5Us2sW1HYMT5EFrwC7H0T75kyRqL1ZmSJLMLKgPoUkhxOa1AMqqdy2dbSke8pOLQo20B7bgvEmxxyKcrV9C"
}
]
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}

View file

@ -0,0 +1,90 @@
# Product
## All Products
{% swagger method="get" path="/getproducts" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-response status="200: OK" description="" %}
```javascript
[
{
"ID": "306796_02",
"TITLE": "Scuderia Ferrari Speedcat Men's Motorsport Shoes",
"IMAGE": "Product_18.webp",
"DESCRIPTION": "Born for speed. Raised in style. The Speedcat returns over 20 years later, this time with sleek Scuderia Ferrari engineering. The signature low profile silhouette features a premium suede upper, plus an authentic rounded driver's heel and Scuderia Ferrari racing shield at the heel. Taking iconic track style to the streets.",
"STOCK": 99,
"PRICE": 1500000,
"SIZE": "46",
"DISCOUNT": 0,
"BRAND": "Puma"
},
{
"ID": "306807_01",
"TITLE": "Ferrari Nitefox GT Men's Shoes",
"IMAGE": "Product_20.webp",
"DESCRIPTION": "In Partnership with Scuderia Ferrari, the Nitefox GT is inspired by the Ferrari Testarossas aerodynamics. One of the most iconic elements is the wind takes on side of the car, giving a very distinctive look.",
"STOCK": 99,
"PRICE": 4500000,
"SIZE": "47",
"DISCOUNT": 20,
"BRAND": "Puma"
},
{
"ID": "306809_03",
"TITLE": "Scuderia Ferrari RCT XETIC Forza Men's ",
"IMAGE": "Product_19.webp",
"DESCRIPTION": "This progressive motorsport silhouette uses ground-breaking XETIC cushioning technology to bring you a sleek, high-tech shoe with an ultimately shock-absorbing stride. With sleek Ferrari branding and team colors, it's built for life in the fast lane.",
"STOCK": 99,
"PRICE": 2200000,
"SIZE": "45",
"DISCOUNT": 0,
"BRAND": "Puma"
},
{
"ID": "306842_02",
"TITLE": "Mercedes F1 RS Connect Motorsport Shoes",
"IMAGE": "Product_17.webp",
"DESCRIPTION": "This innovative addition to the Running System family is inspired by the revolution in connection and communication in our modern, digital world. The RS Connect rides the wave of technological transformation, with a fresh, futuristic design in eye-popping monochrome neon. A richly layered upper and premium Mercedes-AMG Petronas Motorsport branding at the heel bring a high-end, motorsport feel to these comfortable, cushioned sneaks.",
"STOCK": 99,
"PRICE": 2000000,
"SIZE": "47",
"DISCOUNT": 0,
"BRAND": "Puma"
}
]
```
{% endswagger-response %}
{% endswagger %}
## Product Info
{% swagger method="get" path="/getproduct" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="id" required="true" %}
Product ID
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
[
{
"ID": "GY8803",
"TITLE": "Nano X1 Men's Training Shoes",
"IMAGE": "Product_37.webp",
"DESCRIPTION": "Climb, jump and throw the barbell around in shoes made for the way you work out. Perfected by elite athletes, Reebok Nano X1 Shoes are made for anyone who loves to train hard. This men's version has a Flexweave® knit upper that's breathable yet durable, with integrated support for multidirectional movement. Floatride Energy Foam cushioning in the forefoot provides a responsive feel. A heel clip adds stability.",
"STOCK": 99,
"PRICE": 1800000,
"SIZE": "45",
"DISCOUNT": 0,
"BRAND": "Reebok"
}
]
```
{% endswagger-response %}
{% endswagger %}

View file

@ -0,0 +1,27 @@
# Subscribe
{% swagger method="get" path="/subscribe" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="email" required="true" %}
xxx@example.com
{% endswagger-parameter %}
{% swagger-response status="201: Created" description="" %}
```javascript
{
"message": "Success"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% endswagger %}

View file

@ -0,0 +1,193 @@
# Transaction
## Create Transaction
{% swagger method="post" path="/checkout" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="body" name="firstName" required="true" %}
First Name
{% endswagger-parameter %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="body" name="lastName" required="true" %}
Last Name
{% endswagger-parameter %}
{% swagger-parameter in="body" name="phoneNumber" required="true" %}
(+1) xxx xxx xxx
{% endswagger-parameter %}
{% swagger-parameter in="body" name="streetAddress1" required="true" %}
Street Address
{% endswagger-parameter %}
{% swagger-parameter in="body" name="streetAddress2" required="true" %}
Street Addres (Alternative)
{% endswagger-parameter %}
{% swagger-parameter in="body" name="region" required="true" %}
Region
{% endswagger-parameter %}
{% swagger-parameter in="body" name="province" required="true" %}
Province
{% endswagger-parameter %}
{% swagger-parameter in="body" name="city" required="true" %}
City
{% endswagger-parameter %}
{% swagger-parameter in="body" name="district" required="true" %}
District
{% endswagger-parameter %}
{% swagger-parameter in="body" name="subDistrict" required="true" %}
Sub District
{% endswagger-parameter %}
{% swagger-parameter in="body" name="postalCode" required="true" %}
Postal Code
{% endswagger-parameter %}
{% swagger-parameter in="body" name="logistic" required="true" %}
Logistic Provider (JNE, JNT, SICEPAT)
{% endswagger-parameter %}
{% swagger-parameter in="body" name="data" required="true" type="String (JSON)" %}
Order Data
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="201: Created" description="" %}
```javascript
{
"order_id": 3,
"data": "{'product_id': '306796_02', 'quantity': 35}"
}
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}
## All Transactions
{% swagger method="post" path="/transaction" baseUrl="https://nekoya.moe.team/api" summary="" %}
{% swagger-description %}
{% endswagger-description %}
{% swagger-parameter in="query" name="key" required="true" %}
Encrypted String
{% endswagger-parameter %}
{% swagger-parameter in="header" name="Content-Type" %}
application/x-www-form-urlencoded
{% endswagger-parameter %}
{% swagger-response status="200: OK" description="" %}
```javascript
[
{
"id": 1,
"userId": 14,
"firstName": "Gawr",
"lastName": "Gura",
"phoneNumber": "081238749274",
"streetAddress1": "Isekai",
"streetAddress2": "Isekai 2",
"region": "Indonesia",
"province": "DKI Jakarta",
"city": "Jakarta",
"district": "Jakarta Utara",
"subDistrict": "Penjaringan",
"postalCode": "11330",
"logistic": "JNE",
"paymentMethod": "-",
"data": "[\n {\n \"product_id\": \"306796_02\",\n \"quantity\": 30\n }\n]",
"paid": "0",
"status": "pending"
},
{
"id": 2,
"userId": 14,
"firstName": "Minato",
"lastName": "Aqua",
"phoneNumber": "081238749274",
"streetAddress1": "Isekai",
"streetAddress2": "Isekai 2",
"region": "Indonesia",
"province": "DKI Jakarta",
"city": "Jakarta",
"district": "Jakarta Utara",
"subDistrict": "Penjaringan",
"postalCode": "11330",
"logistic": "JNE",
"paymentMethod": "-",
"data": "[{\"product_id\": \"306796_02\",\"quantity\": 35}]",
"paid": "0",
"status": "pending"
},
{
"id": 3,
"userId": 14,
"firstName": "Akai",
"lastName": "Haato",
"phoneNumber": "081238749274",
"streetAddress1": "Isekai",
"streetAddress2": "Isekai 2",
"region": "Indonesia",
"province": "DKI Jakarta",
"city": "Jakarta",
"district": "Jakarta Utara",
"subDistrict": "Penjaringan",
"postalCode": "11330",
"logistic": "JNE",
"paymentMethod": "-",
"data": "[{\"product_id\": \"306796_02\",\"quantity\": 35}]",
"paid": "0",
"status": "pending"
}
]
```
{% endswagger-response %}
{% swagger-response status="400: Bad Request" description="" %}
```javascript
{
"message": "Bad Request"
}
```
{% endswagger-response %}
{% swagger-response status="401: Unauthorized" description="" %}
```javascript
{
"message": "Unauthorized"
}
```
{% endswagger-response %}
{% endswagger %}