go 1.20
go mod vendor
go run main.go
go build
POST api/v1/users
Request Body:
{
"email": "example@mail.com",
"password": "contohpassword"
}
Response Body:
Status OK 200
{
"message": "login success",
"data": {
"access_token": "fjda;lkfdjal;dkfja",
"refresh_token": ";fkdsja;flkdajf;ldkaj"
}
}
POST api/v1/users/register
Request Body:
{
"username": "username",
"first_name": "nama depan",
"last_name": "nama belakang",
"email": "example@mail.com",
"password": "contohpassword",
"confirm_password": "contohpassword",
"phone_number": "0812345678"
}
Response Body:
Status Created 201
{
"message": "register success"
}
GET api/v1/users/:username
Response Body:
Status OK 200
{
"message": "detail get success",
"data": {
"username": "test123",
"first_name": "Coba",
"last_name": "Mencoba",
"email": "coba@gmail.com",
"phone_number": "62111122222",
"avatar_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png",
"posts": [
{
"id": 1,
"username": "test123",
"avatar_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png",
"body": "lorem ipsum",
"image_url": "",
"comments_count": 0,
"likes_count": 0
}
]
}
}
POST api/v1/users/update
Header
Authorization: Bearer <token>
Request Body:
{
"first_name": "Coba",
"last_name": "Mencoba",
"email": "coba@gmail.com",
"phone_number": "62111122222",
"avatar_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png",
"bio": "orang ganteng"
}
Response Body:
Status OK 200
{
"message": "update success"
}
GET api/v1/posts
Params
page
(default = 1)size
(default = 10)
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "timeline get success",
"data": [
{
"id": 1,
"username": "username",
"avatar_url": "lorem ipsum",
"body": "lorem ipsum",
"image_url": "lorem ipsum",
"comments_count": 12,
"likes_count": 12
}
]
}
GET api/v1/posts/:id
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "detail get success",
"data": {
"id": 8,
"username": "test123",
"avatar_url": "",
"body": "lorem ipsum",
"image_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png",
"comments_count": 1,
"likes_count": 1,
"comments": [
{
"id": 3,
"username": "test123",
"avatar_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png",
"body": "lorem ipsum",
"likes_count": 0
}
]
}
}
POST api/v1/posts
Header
Authorization: Bearer <token>
Request Body:
{
"anonymouos": false,
"body": "lorem ipsum",
"image_url": "https://storage.googleapis.com/auxilium-bucket/test-image/cando54.png"
}
Response Body:
Status Created 201
{
"message": "post created successfully"
}
POST api/v1/posts/:postID/like
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "like post success"
}
POST api/v1/posts/:postID/dislike
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "dislike post success"
}
POST api/v1/posts/:postID/comment
Header
Authorization: Bearer <token>
Request Body:
{
"anonymouos": false,
"body": "lorem ipsum"
}
Response Body:
Status Created 201
{
"message": "comment created successfully"
}
POST api/v1/posts/:postID/comment/:commentID/like
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "like comment success"
}
POST api/v1/posts/:postID/comment/:commentID/dislike
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "dislike comment success"
}
POST api/v1/helper
Header
Authorization: Bearer <token>
Request Body:
{
"lat": 0.5,
"lon": 1.0
}
Response Body:
Status Created 201
{
"message": "helper created successfully"
}
POST api/v1/helper/remove
Header
Authorization: Bearer <token>
Response Body:
Status Created 200
{
"message": "helper removed successfully"
}
GET api/v1/helper
Params
lat
float64lon
float64radius
float64
Header
Authorization: Bearer <token>
Response Body:
Status OK 200
{
"message": "list helper success",
"data": [
{
"id": 1,
"username": "test123",
"avatar_url": "",
"lat": 0.5,
"lon": 1
}
]
}
POST api/v1/upload
Header
Authorization: Bearer <token>
Request Body:
image
asfile
max size 10MB
Response Body:
Status OK 200
{
"message": "upload image success",
"data": "url_to_image"
}