API ======================================================================================================================== # формат API урлів api/v1// SESSION ======================================================================================================================== # логінація користувача, яка відразу повертає інформацію про нього api/v1/session/login POST: { login: String, password: String, rememberMe: Boolean } RESPONSE: { status: String true, data: { id: Number, login: String, name: String, roleId: String, enabled: String, isGuest: Boolean } } { status: String false message: "", data: { errors: { login: ["error 1", "error 2"] } } } # вилогінює користувача api/v1/session/logout RESPONSE: { status: true message: String } # повертає інформацію про залогіненого користувача api/v1/session/info RESPONSE: { status: true data: { id: Number login: String name: String, roleId: String, enabled: String, isGuest: Boolean } } { status: false } # повертає повну інформацію про залогіненого користувача api/v1/session/fullInfo RESPONSE: { status: true data: { id: Number name: String phone: String email: String login: String enabled: String image: String birthDate: String preferredLanguage: String isGuest: Boolean } } { status: false } # оновлює дані поточного користувача api/v1/session/update POST: { id: Number name: String phone: String email: String password: String birthDate: String preferredLanguage: String } RESPONSE: { status: String true|false, data: { id: Number name: String phone: String email: String login: String enabled: String image: String birthDate: String preferredLanguage: String isGuest: Boolean } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # перевіряє код підтвердження поточного юзера на валідність api/v1/session/checkcode POST: { phoneCode: String, emailCode: String, checkType: String 'full'|'phone'|'email' } RESPONSE: { status: String true|false, message: "" } # висилає код підтвердження поточного юзера на емейл/телефон api/v1/session/sendcode POST: { codeType: String 'phone'|'email' } RESPONSE: { status: String true|false, message: "" } USER ======================================================================================================================== # список користувачів api/v1/user/list POST: { pagination: { pageSize: Number, page: Number, sort: String "email-desc" | "email" } } RESPONSE: { status: String true, data: { list: Array }, pagination: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number, } } { status: String false message: "" } # реэстрація користувача, яка відразу повертає інформацію про нього api/v1/user/register POST: { name: String, email: String, login: String, password: String, repassword: String, } RESPONSE: { status: String true, data: { id: Number login: String name: String isGuest: Boolean }, message: "" } { status: String false message: "" } # створення користувача api/v1/user/save POST: { name: String, login: String, email: String, phone: String, password: String repassword: String } RESPONSE: { status: String true, message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # редагування користувача api/v1/user/save POST: { id: Number, name: String, login: String, email: String, phone: String, password: String #optional repassword: String #optional } RESPONSE: { status: String true, message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # повертає повну інформацію про користувача api/v1/user/view POST: { id: Number } RESPONSE: { status: true data: { id: Number name: String phone: String email: String login: String enabled: String image: String birthDate: String preferredLanguage: String isGuest: Boolean } } { status: false } # видаляє користувача api/v1/user/delete POST: { id: Number } RESPONSE: { status: true, message: "" } { status: false, message: "" } TAG ======================================================================================================================== TAG ======================================================================================================================== # список тегів api/v1/admin-tag/list POST: { pagination: { pageSize: Number, page: Number, sort: String "email-desc" | "email" }, filter: { query: String } } RESPONSE: { status: String true, data: { list: Array }, pagination: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number, } } { status: String false message: "" } # повертає інформацію про тег api/v1/admin-tag/view POST: { id: Number } RESPONSE: { status: true data: { id: Number typeId: Number forceSingleNode: String typeCode: String typeName: String typeCanEdit: String typeCanSearch: String typeSorter: Number name: String image: String sorter: Number canSearch: String enabled: String languageId: String added: String changed: String tagNames: String } } { status: false } # створення тегу api/v1/admin-tag/save POST: { typeId: Number, typeCode: String, name: String, image: String, sorter: Number, canSearch: String, enabled: String, } RESPONSE: { status: String true, data: { id: Number typeId: Number forceSingleNode: String typeCode: String typeName: String typeCanEdit: String typeCanSearch: String typeSorter: Number name: String image: String sorter: Number canSearch: String enabled: String languageId: String added: String changed: String tagNames: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # редагування тегу api/v1/admin-tag/save POST: { id: Number, image: Number, sorter: Number, canSearch: String, enabled: String, } RESPONSE: { status: String true, data: { id: Number typeId: Number forceSingleNode: String typeCode: String typeName: String typeCanEdit: String typeCanSearch: String typeSorter: Number name: String image: String sorter: Number canSearch: String enabled: String languageId: String added: String changed: String tagNames: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # видалення тегу api/v1/admin-tag/delete POST: { id: Number } RESPONSE: { status: true, message: "" } { status: false, message: "" } # Повератє дані які використовуються формою створення Tag api/v1/admin-tag/read-create-data POST: {} RESPONSE: { status: true, tag: { tagNameList: Array }, langList: Array, typeCodeList: Array } { status: false, message: "" } # Повератє список привязок тегу api/v1/admin-tag/link-list POST: { id: Number, pagination: { parent: { pageSize: Number, page: Number, sort: String "email-desc" | "email" }, child: { ... }, recommendParent: { ... }, recommendChild: { ... }, } } RESPONSE: { status: true, tag: { tagNameList: Array }, parent: Array, child: Array, recommendParent: Array, recommendChild: Array, pagination: { parent: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number }, child: { ... }, recommendParent: { ... }, recommendChild: { ... } } } { status: false, message: "" } # привязує теги api/v1/admin-tag/link POST: { srcId: Number, dstId: Number } RESPONSE: { status: true, tag: { tagNameList: Array }, parent: Array, child: Array, recommendParent: Array, recommendChild: Array, pagination: { parent: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number }, child: { ... }, recommendParent: { ... }, recommendChild: { ... } } } { status: false, message: "" } # відвязує теги api/v1/admin-tag/unlink POST: { srcId: Number, dstId: Number } RESPONSE: { status: true, tag: { tagNameList: Array }, parent: Array, child: Array, recommendParent: Array, recommendChild: Array, pagination: { parent: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number }, child: { ... }, recommendParent: { ... }, recommendChild: { ... } } } { status: false, message: "" } Object ======================================================================================================================== # список всіх об’єктів api/v1/object/list POST: { pagination: { pageSize: Number, page: Number, sort: String "statusId-desc" | "statusId" }, filter: { query: String } } RESPONSE: { status: String true, data: { list: Array }, pagination: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number, } } { status: String false message: "" } # повертає інформацію про об’єкт api/v1/object/view | api/v1/object/read POST: { id: Number } RESPONSE: { status: true data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } } { status: false } # створення об’єкта api/v1/object/save | api/v1/object/create POST: { description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } RESPONSE: { status: String true, data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # редагування об’єкта api/v1/object/save | api/v1/object/update POST: { id: Number, description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } RESPONSE: { status: String true, data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # видалення об’єкта api/v1/object/delete POST: { id: Number } RESPONSE: { status: true, message: "" } { status: false, message: "" } # список можливих статусів об’єкта api/v1/object/status-list RESPONSE: { status: true, data: { statusList: Array } } # список доступних гео-тегів для лінкування api/v1/object/recommend-geo POST: { id: Number, part: String } RESPONSE: { status: true, data: { list: Array } } # лінкування гео-тегу до мітки api/v1/object/link-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # відлінкування гео-тегу від мітки api/v1/object/unlink-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # список доступних тегів (але не гео) для лінкування api/v1/object/recommend-tag POST: { id: Number, part: String } RESPONSE: { status: true, data: { list: Array } } # лінкування тегу (але не гео) до мітки api/v1/object/link-tag POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # відлінкування тегу (але не гео) від мітки api/v1/object/unlink-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } Ticket ======================================================================================================================== # список всіх тікетів api/v1/object/list POST: { pagination: { pageSize: Number, page: Number, sort: String "statusId-desc" | "statusId" }, filter: { query: String } } RESPONSE: { status: String true, data: { list: Array }, pagination: { pageSize: Number, totalCount: Number, pageCount: Number, currentPageIndex: Number, } } { status: String false message: "" } # повертає інформацію про тікет api/v1/object/view | api/v1/object/read POST: { id: Number } RESPONSE: { status: true data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } } { status: false } # створення тікета api/v1/object/save | api/v1/object/create POST: { description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } RESPONSE: { status: String true, data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # редагування тікета api/v1/object/save | api/v1/object/update POST: { id: Number, description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } RESPONSE: { status: String true, data: { id: Number address: String description: String latitude: String longitude: String noteForModerator: String noteForUser: String statusId: String } message: "" } { status: String false, data: { errors: { login: ["error 1", "error 2"] } } message: "" } # видалення тікета api/v1/object/delete POST: { id: Number } RESPONSE: { status: true, message: "" } { status: false, message: "" } # список можливих статусів об’єкта api/v1/object/status-list RESPONSE: { status: true, data: { statusList: Array } } # список доступних гео-тегів для лінкування api/v1/object/recommend-geo POST: { id: Number, part: String } RESPONSE: { status: true, data: { list: Array } } # лінкування гео-тегу до мітки api/v1/object/link-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # відлінкування гео-тегу від мітки api/v1/object/unlink-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # список доступних тегів (але не гео) для лінкування api/v1/object/recommend-tag POST: { id: Number, part: String } RESPONSE: { status: true, data: { list: Array } } # лінкування тегу (але не гео) до мітки api/v1/object/link-tag POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # відлінкування тегу (але не гео) від мітки api/v1/object/unlink-geo POST: { id: Number, tagId: Number } RESPONSE: { status: true, data: { links: Array, linkAllow: Boolean } } # задання статусу (draft | review) тікета api/v1/object/set-status POST: { id: Number, status: String } RESPONSE: { status: true | false, data: Array, message: String }