Files
wajs-server/downloads/darmasaba.txt
bipproduction ea1937da6d tambahannya
2025-10-20 07:54:09 +08:00

3709 lines
81 KiB
Plaintext

```yaml
openapi: 3.0.3
info:
title: Desa+ Mobile API
description: API untuk aplikasi mobile Desa+ (berbasis kode client Axios).
version: 1.0.0
contact:
name: API Support
email: support@desa-plus.com
servers:
- url: https://staging-darmasaba.wibudev.com/api
description: Production server
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
# Common Schemas
User:
type: object
properties:
id:
type: string
name:
type: string
phone:
type: string
required:
- id
Error:
type: object
properties:
message:
type: string
status:
type: integer
# Auth
PhoneLoginBody:
type: object
properties:
phone:
type: string
required:
- phone
OtpBody:
type: object
properties:
phone:
type: string
otp:
type: integer
required:
- phone
- otp
# Banner
Banner:
type: object
properties:
id:
type: string
title:
type: string
image:
type: string
user:
type: string
required:
- id
# Group
Group:
type: object
properties:
id:
type: string
name:
type: string
user:
type: string
isActive:
type: boolean
required:
- id
- name
GroupCreateBody:
type: object
properties:
user:
type: string
name:
type: string
required:
- user
- name
# Position
Position:
type: object
properties:
id:
type: string
name:
type: string
idGroup:
type: string
user:
type: string
isActive:
type: boolean
required:
- id
- name
PositionCreateBody:
type: object
properties:
user:
type: string
name:
type: string
idGroup:
type: string
required:
- user
- name
- idGroup
# User Management
UserCreateBody:
type: object
properties:
name:
type: string
email:
type: string
photo:
type: string
required:
- name
# Discussion General
DiscussionGeneral:
type: object
properties:
id:
type: string
title:
type: string
desc:
type: string
user:
type: string
status:
type: integer
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- id
- title
DiscussionGeneralCreateBody:
type: object
properties:
idGroup:
type: string
title:
type: string
desc:
type: string
user:
type: string
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- idGroup
- title
- desc
- user
DiscussionGeneralCommentBody:
type: object
properties:
desc:
type: string
user:
type: string
required:
- desc
- user
# Announcement
Announcement:
type: object
properties:
id:
type: string
title:
type: string
desc:
type: string
user:
type: string
groups:
type: array
items:
type: string
required:
- id
- title
AnnouncementCreateBody:
type: object
properties:
title:
type: string
desc:
type: string
user:
type: string
groups:
type: array
items:
type: string
required:
- title
- desc
- user
- groups
# Project
Project:
type: object
properties:
id:
type: string
name:
type: string
user:
type: string
status:
type: integer
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- id
- name
ProjectCreateBody:
type: object
properties:
name:
type: string
description:
type: string
required:
- name
ProjectTaskCreateBody:
type: object
properties:
name:
type: string
dateStart:
type: string
dateEnd:
type: string
user:
type: string
dataDetail:
type: array
items:
type: object
required:
- name
- dateStart
- dateEnd
- user
ProjectUpdateStatusBody:
type: object
properties:
user:
type: string
status:
type: integer
idProject:
type: string
required:
- user
- status
- idProject
# Division
Division:
type: object
properties:
id:
type: string
name:
type: string
desc:
type: string
user:
type: string
isActive:
type: boolean
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- id
- name
DivisionCreateBody:
type: object
properties:
data:
type: object
properties:
idGroup:
type: string
name:
type: string
desc:
type: string
required:
- idGroup
- name
- desc
member:
type: array
items:
$ref: '#/components/schemas/User'
admin:
type: array
items:
type: string
user:
type: string
required:
- data
- member
- admin
- user
DivisionMemberBody:
type: object
properties:
user:
type: string
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- user
- member
# Discussion
Discussion:
type: object
properties:
id:
type: string
desc:
type: string
user:
type: string
idDivision:
type: string
active:
type: boolean
status:
type: integer
required:
- id
- desc
DiscussionCreateBody:
type: object
properties:
user:
type: string
desc:
type: string
idDivision:
type: string
required:
- user
- desc
- idDivision
DiscussionCommentBody:
type: object
properties:
user:
type: string
comment:
type: string
required:
- user
- comment
DiscussionEditBody:
type: object
properties:
user:
type: string
desc:
type: string
required:
- user
- desc
# Calendar
Calendar:
type: object
properties:
id:
type: string
title:
type: string
desc:
type: string
timeStart:
type: string
timeEnd:
type: string
dateStart:
type: string
repeatEventTyper:
type: string
repeatValue:
type: string
linkMeet:
type: string
idDivision:
type: string
member:
type: array
items:
$ref: '#/components/schemas/User'
user:
type: string
required:
- id
- title
- desc
- timeStart
- timeEnd
- dateStart
- idDivision
- user
CalendarCreateBody:
type: object
properties:
idDivision:
type: string
title:
type: string
desc:
type: string
timeStart:
type: string
timeEnd:
type: string
dateStart:
type: string
repeatEventTyper:
type: string
repeatValue:
type: string
linkMeet:
type: string
member:
type: array
items:
$ref: '#/components/schemas/User'
user:
type: string
required:
- idDivision
- title
- desc
- timeStart
- timeEnd
- dateStart
- user
# Task
Task:
type: object
properties:
id:
type: string
title:
type: string
user:
type: string
status:
type: integer
idDivision:
type: string
required:
- id
- title
TaskCreateBody:
type: object
properties:
title:
type: string
description:
type: string
required:
- title
TaskTugasCreateBody:
type: object
properties:
title:
type: string
dateStart:
type: string
dateEnd:
type: string
user:
type: string
idDivision:
type: string
dataDetail:
type: array
items:
type: object
required:
- title
- dateStart
- dateEnd
- user
- idDivision
TaskMemberBody:
type: object
properties:
user:
type: string
member:
type: array
items:
$ref: '#/components/schemas/User'
idDivision:
type: string
required:
- user
- member
- idDivision
# Document
DocumentMoveBody:
type: object
properties:
path:
type: string
dataItem:
type: array
items:
type: object
user:
type: string
required:
- path
- dataItem
- user
DocumentCopyBody:
type: object
properties:
path:
type: string
dataItem:
type: array
items:
type: object
user:
type: string
idDivision:
type: string
required:
- path
- dataItem
- user
- idDivision
DocumentShareBody:
type: object
properties:
dataDivision:
type: array
items:
type: object
dataItem:
type: array
items:
type: object
user:
type: string
required:
- dataDivision
- dataItem
- user
DocumentRenameBody:
type: object
properties:
name:
type: string
user:
type: string
id:
type: string
path:
type: string
idDivision:
type: string
extension:
type: string
required:
- name
- user
- id
- path
- idDivision
- extension
DocumentFolderCreateBody:
type: object
properties:
name:
type: string
path:
type: string
idDivision:
type: string
user:
type: string
required:
- name
- path
- idDivision
- user
DocumentDeleteBody:
type: object
properties:
user:
type: string
data:
type: array
items:
type: object
required:
- user
- data
# Notification
NotificationReadBody:
type: object
properties:
user:
type: string
id:
type: string
required:
- user
- id
# Token
TokenBody:
type: object
properties:
user:
type: string
token:
type: string
required:
- user
- token
# Generic Response
ApiResponse:
type: object
properties:
data:
type: object
success:
type: boolean
required:
- data
paths:
# Auth
/auth/login:
post:
tags:
- Auth
summary: Check phone for login
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PhoneLoginBody'
responses:
'200':
description: Login data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
# Banner
/mobile/banner:
get:
tags:
- Banner
summary: Get banners
parameters:
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: List of banners
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Banner'
post:
tags:
- Banner
summary: Create banner
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
title:
type: string
image:
type: string
format: binary
responses:
'200':
description: Created banner
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
/mobile/banner/{id}:
get:
tags:
- Banner
summary: Get one banner
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Banner details
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
put:
tags:
- Banner
summary: Edit banner
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
title:
type: string
image:
type: string
format: binary
responses:
'200':
description: Updated banner
content:
application/json:
schema:
$ref: '#/components/schemas/Banner'
delete:
tags:
- Banner
summary: Delete banner
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Home Data
/mobile/home:
get:
tags:
- Home
summary: Get home data by category
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [kegiatan, division, progress, dokumen, event, discussion, header, check-late-project]
responses:
'200':
description: Home data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/home/search:
get:
tags:
- Home
summary: Search home
parameters:
- name: search
in: query
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Search results
content:
application/json:
schema:
type: array
items:
type: object
/mobile/home/notification:
get:
tags:
- Notification
summary: Get notifications
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of notifications
content:
application/json:
schema:
type: array
items:
type: object
put:
tags:
- Notification
summary: Read one notification
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationReadBody'
responses:
'200':
description: Updated notification
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Group
/mobile/group:
get:
tags:
- Group
summary: Get groups
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
responses:
'200':
description: List of groups
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Group'
post:
tags:
- Group
summary: Create group
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupCreateBody'
responses:
'200':
description: Created group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
/mobile/group/{id}:
put:
tags:
- Group
summary: Edit group
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GroupCreateBody'
responses:
'200':
description: Updated group
content:
application/json:
schema:
$ref: '#/components/schemas/Group'
delete:
tags:
- Group
summary: Delete group
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
isActive:
type: boolean
required:
- user
- isActive
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/group/get-division:
get:
tags:
- Group
summary: Get division groups
parameters:
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Division groups
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Group'
# Position
/mobile/position:
get:
tags:
- Position
summary: Get positions
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
responses:
'200':
description: List of positions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Position'
post:
tags:
- Position
summary: Create position
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PositionCreateBody'
responses:
'200':
description: Created position
content:
application/json:
schema:
$ref: '#/components/schemas/Position'
/mobile/position/{id}:
put:
tags:
- Position
summary: Edit position
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PositionCreateBody'
responses:
'200':
description: Updated position
content:
application/json:
schema:
$ref: '#/components/schemas/Position'
delete:
tags:
- Position
summary: Delete position
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
isActive:
type: boolean
required:
- user
- isActive
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# User
/mobile/user:
get:
tags:
- User
summary: Get users
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of users
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
post:
tags:
- User
summary: Create user
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/UserCreateBody'
responses:
'200':
description: Created user
content:
application/json:
schema:
$ref: '#/components/schemas/User'
/mobile/user/{id}:
get:
tags:
- User
summary: Get profile
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: User profile
content:
application/json:
schema:
$ref: '#/components/schemas/User'
put:
tags:
- User
summary: Edit user
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
name:
type: string
photo:
type: string
format: binary
responses:
'200':
description: Updated user
content:
application/json:
schema:
$ref: '#/components/schemas/User'
delete:
tags:
- User
summary: Delete user
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
isActive:
type: boolean
required:
- user
- isActive
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/user/profile:
put:
tags:
- User
summary: Edit profile
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
name:
type: string
photo:
type: string
format: binary
responses:
'200':
description: Updated profile
content:
application/json:
schema:
$ref: '#/components/schemas/User'
# Discussion General
/mobile/discussion-general:
get:
tags:
- DiscussionGeneral
summary: Get discussion general
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of discussions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DiscussionGeneral'
post:
tags:
- DiscussionGeneral
summary: Create discussion general
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneralCreateBody'
responses:
'200':
description: Created discussion
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneral'
/mobile/discussion-general/{id}:
get:
tags:
- DiscussionGeneral
summary: Get one discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
responses:
'200':
description: Discussion details
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneral'
post:
tags:
- DiscussionGeneral
summary: Update status discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: integer
user:
type: string
required:
- status
- user
responses:
'200':
description: Updated status
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneral'
put:
tags:
- DiscussionGeneral
summary: Edit discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
title:
type: string
desc:
type: string
required:
- user
- title
- desc
responses:
'200':
description: Updated discussion
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneral'
delete:
tags:
- DiscussionGeneral
summary: Delete discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
active:
type: boolean
required:
- user
- active
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/discussion-general/{id}/comment:
post:
tags:
- DiscussionGeneral
summary: Send comment to discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneralCommentBody'
responses:
'200':
description: Comment added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/discussion-general/{id}/member:
post:
tags:
- DiscussionGeneral
summary: Add members to discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionMemberBody'
responses:
'200':
description: Members added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- DiscussionGeneral
summary: Delete member from discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idUser:
type: string
required:
- user
- idUser
responses:
'200':
description: Member deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Announcement
/mobile/announcement:
get:
tags:
- Announcement
summary: Get announcements
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of announcements
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Announcement'
post:
tags:
- Announcement
summary: Create announcement
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AnnouncementCreateBody'
responses:
'200':
description: Created announcement
content:
application/json:
schema:
$ref: '#/components/schemas/Announcement'
/mobile/announcement/{id}:
get:
tags:
- Announcement
summary: Get one announcement
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Announcement details
content:
application/json:
schema:
$ref: '#/components/schemas/Announcement'
put:
tags:
- Announcement
summary: Edit announcement
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AnnouncementCreateBody'
responses:
'200':
description: Updated announcement
content:
application/json:
schema:
$ref: '#/components/schemas/Announcement'
delete:
tags:
- Announcement
summary: Delete announcement
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Project
/mobile/project:
get:
tags:
- Project
summary: Get projects
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: status
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of projects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Project'
post:
tags:
- Project
summary: Create project
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/ProjectCreateBody'
responses:
'200':
description: Created project
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
/mobile/project/{id}:
get:
tags:
- Project
summary: Get one project
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [data, progress, task, file, member, link]
responses:
'200':
description: Project details
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
put:
tags:
- Project
summary: Edit project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
user:
type: string
required:
- name
- user
responses:
'200':
description: Updated project
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
post:
tags:
- Project
summary: Create project task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectTaskCreateBody'
responses:
'200':
description: Created task
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Cancel project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
reason:
type: string
required:
- user
- reason
responses:
'200':
description: Canceled
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/project/{id}/lainnya:
put:
tags:
- Project
summary: Report project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
report:
type: string
user:
type: string
required:
- report
- user
responses:
'200':
description: Report added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Delete project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/project/detail/{id}:
get:
tags:
- Project
summary: Get project task
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
responses:
'200':
description: Task details
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
put:
tags:
- Project
summary: Update status project task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectUpdateStatusBody'
responses:
'200':
description: Status updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
post:
tags:
- Project
summary: Edit project task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectTaskCreateBody'
responses:
'200':
description: Task updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Delete project task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idProject:
type: string
required:
- user
- idProject
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/project/{id}/member:
post:
tags:
- Project
summary: Add members to project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionMemberBody'
responses:
'200':
description: Members added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Delete member from project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idUser:
type: string
required:
- user
- idUser
responses:
'200':
description: Member deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/project/{id}/link:
post:
tags:
- Project
summary: Add link to project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
link:
type: string
required:
- user
- link
responses:
'200':
description: Link added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Delete link from project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
idLink:
type: string
user:
type: string
required:
- idLink
- user
responses:
'200':
description: Link deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/project/file/{id}:
post:
tags:
- Project
summary: Add file to project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: File added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
put:
tags:
- Project
summary: Check/update file in project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: File updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Project
summary: Delete file from project
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: File deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Division
/mobile/division:
get:
tags:
- Division
summary: Get divisions
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of divisions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Division'
post:
tags:
- Division
summary: Create division
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionCreateBody'
responses:
'200':
description: Created division
content:
application/json:
schema:
$ref: '#/components/schemas/Division'
/mobile/division/{id}:
get:
tags:
- Division
summary: Get one division detail
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Division details
content:
application/json:
schema:
$ref: '#/components/schemas/Division'
put:
tags:
- Division
summary: Edit division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
name:
type: string
desc:
type: string
required:
- user
- name
- desc
responses:
'200':
description: Updated division
content:
application/json:
schema:
$ref: '#/components/schemas/Division'
/mobile/division/{id}/detail:
get:
tags:
- Division
summary: Get division one feature
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [jumlah, today-task, new-file, new-discussion, check-member, check-admin]
responses:
'200':
description: Feature data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
put:
tags:
- Division
summary: Update status admin division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
id:
type: string
isAdmin:
type: boolean
required:
- user
- id
- isAdmin
responses:
'200':
description: Status updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
post:
tags:
- Division
summary: Add members to division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionMemberBody'
responses:
'200':
description: Members added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Division
summary: Delete member from division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
id:
type: string
required:
- user
- id
responses:
'200':
description: Member deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/division/{id}/status:
post:
tags:
- Division
summary: Update status division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
isActive:
type: boolean
required:
- user
- isActive
responses:
'200':
description: Status updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/division/{id}/member:
get:
tags:
- Division
summary: Get division members
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
responses:
'200':
description: List of members
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/mobile/division/report:
get:
tags:
- Division
summary: Get division report
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [table-progress, lainnya]
- name: date
in: query
required: true
schema:
type: string
- name: date-end
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
responses:
'200':
description: Report data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/division/more:
get:
tags:
- Division
summary: Get list division by id division
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
responses:
'200':
description: List of divisions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Division'
# Discussion
/mobile/discussion:
get:
tags:
- Discussion
summary: Get discussions
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of discussions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Discussion'
post:
tags:
- Discussion
summary: Create discussion
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionCreateBody'
responses:
'200':
description: Created discussion
content:
application/json:
schema:
$ref: '#/components/schemas/Discussion'
/mobile/discussion/{id}:
get:
tags:
- Discussion
summary: Get one discussion
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [data, comment]
responses:
'200':
description: Discussion details
content:
application/json:
schema:
$ref: '#/components/schemas/Discussion'
post:
tags:
- Discussion
summary: Edit discussion
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionEditBody'
responses:
'200':
description: Updated discussion
content:
application/json:
schema:
$ref: '#/components/schemas/Discussion'
put:
tags:
- Discussion
summary: Archive discussion
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
active:
type: boolean
required:
- user
- active
responses:
'200':
description: Archived
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Discussion
summary: Open/close discussion
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
status:
type: integer
required:
- user
- status
responses:
'200':
description: Status updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/discussion/{id}/comment:
post:
tags:
- Discussion
summary: Send comment to discussion
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionCommentBody'
responses:
'200':
description: Comment added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Calendar
/mobile/calendar:
get:
tags:
- Calendar
summary: Get calendar by date and division
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: date
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
responses:
'200':
description: Calendar events
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Calendar'
post:
tags:
- Calendar
summary: Create calendar event
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarCreateBody'
responses:
'200':
description: Created event
content:
application/json:
schema:
$ref: '#/components/schemas/Calendar'
/mobile/calendar/indicator:
get:
tags:
- Calendar
summary: Get calendar indicator
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: date
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
responses:
'200':
description: Indicators
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/calendar/{id}:
get:
tags:
- Calendar
summary: Get one calendar event
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [data, member]
responses:
'200':
description: Event details
content:
application/json:
schema:
$ref: '#/components/schemas/Calendar'
put:
tags:
- Calendar
summary: Update calendar event
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
desc:
type: string
timeStart:
type: string
timeEnd:
type: string
dateStart:
type: string
repeatEventTyper:
type: string
repeatValue:
type: number
linkMeet:
type: string
user:
type: string
required:
- title
- desc
- timeStart
- timeEnd
- dateStart
- repeatEventTyper
- repeatValue
- linkMeet
- user
responses:
'200':
description: Updated event
content:
application/json:
schema:
$ref: '#/components/schemas/Calendar'
delete:
tags:
- Calendar
summary: Delete calendar event
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/calendar/{id}/member:
post:
tags:
- Calendar
summary: Add members to calendar
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DivisionMemberBody'
responses:
'200':
description: Members added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Calendar
summary: Delete member from calendar
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idUser:
type: string
required:
- user
- idUser
responses:
'200':
description: Member deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/calendar/history:
get:
tags:
- Calendar
summary: Get calendar history
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: History
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Calendar'
# Task
/mobile/task:
get:
tags:
- Task
summary: Get tasks
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: status
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of tasks
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Task'
post:
tags:
- Task
summary: Create task
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/TaskCreateBody'
responses:
'200':
description: Created task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
/mobile/task/{id}:
get:
tags:
- Task
summary: Get one task
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [data, progress, task, file, member, link]
responses:
'200':
description: Task details
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
put:
tags:
- Task
summary: Edit task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
user:
type: string
required:
- title
- user
responses:
'200':
description: Updated task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
post:
tags:
- Task
summary: Create task tugas
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskTugasCreateBody'
responses:
'200':
description: Created tugas
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Cancel task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
reason:
type: string
required:
- user
- reason
responses:
'200':
description: Canceled
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/task/{id}/lainnya:
put:
tags:
- Task
summary: Report task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
report:
type: string
user:
type: string
required:
- report
- user
responses:
'200':
description: Report added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Delete task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/task/detail/{id}:
get:
tags:
- Task
summary: Get task tugas
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
responses:
'200':
description: Tugas details
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
put:
tags:
- Task
summary: Update status task division
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectUpdateStatusBody'
responses:
'200':
description: Status updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
post:
tags:
- Task
summary: Edit task tugas
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskTugasCreateBody'
responses:
'200':
description: Tugas updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Delete task tugas
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idProject:
type: string
required:
- user
- idProject
responses:
'200':
description: Deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/task/{id}/member:
post:
tags:
- Task
summary: Add members to task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskMemberBody'
responses:
'200':
description: Members added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Delete member from task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idUser:
type: string
required:
- user
- idUser
responses:
'200':
description: Member deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/task/{id}/link:
post:
tags:
- Task
summary: Add link to task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
link:
type: string
idDivision:
type: string
required:
- user
- link
- idDivision
responses:
'200':
description: Link added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Delete link from task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
idLink:
type: string
required:
- user
- idLink
responses:
'200':
description: Link deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/mobile/task/file/{id}:
post:
tags:
- Task
summary: Add file to task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: File added
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
put:
tags:
- Task
summary: Check/update file in task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
responses:
'200':
description: File updated
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
delete:
tags:
- Task
summary: Delete file from task
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user:
type: string
required:
- user
responses:
'200':
description: File deleted
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
# Document
/mobile/document:
get:
tags:
- Document
summary: Get documents
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: path
in: query
required: true
schema:
type: string
- name: division
in: query
required: