Compare commits
5 Commits
e284fffdee
...
c64700ed38
Author | SHA1 | Date |
---|---|---|
HardiReady | c64700ed38 | |
HardiReady | ea96bca991 | |
HardiReady | b85f987088 | |
HardiReady | e2722afee7 | |
HardiReady | dc0de2db89 |
|
@ -1,18 +1,24 @@
|
|||
### GET Awardings [GET /awardings{?userId,confirmed}]
|
||||
### GET Awardings [GET /awardings{?userId,inProgress,fractFilter}]
|
||||
|
||||
List all awardings
|
||||
|
||||
+ Parameters
|
||||
+ userId (string, optional)
|
||||
specific army member Id to show the awardings for
|
||||
specific army member Id to show the awardings for
|
||||
|
||||
+ confirmed (number, optional)
|
||||
Field to filter by request awarding state
|
||||
+ inProgress (boolean, optional)
|
||||
true to filter by awarding state 'in progress'
|
||||
|
||||
+ Default: false
|
||||
|
||||
+ fractFilter (enum[string], optional)
|
||||
Field to filter by fraction
|
||||
|
||||
+ Members
|
||||
+ 0 - not decided
|
||||
+ 1 - confirmed
|
||||
+ 2 - rejected
|
||||
+ `BLUFOR`
|
||||
+ `OPFOR`
|
||||
+ `GLOBAL`
|
||||
|
||||
|
||||
+ Response 200
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
### GET Promotions [GET /promotion{?squadId,inProgress,fractFilter}]
|
||||
|
||||
List all promotion requests
|
||||
|
||||
+ Parameters
|
||||
+ squadId (string, optional)
|
||||
specific squad Id to show the promotion requests for
|
||||
|
||||
+ inProgress (boolean, optional)
|
||||
true to filter by promotion state 'in progress'
|
||||
|
||||
+ Default: false
|
||||
|
||||
+ fractFilter (enum[string], optional)
|
||||
Field to filter by fraction
|
||||
|
||||
+ Members
|
||||
+ `BLUFOR`
|
||||
+ `OPFOR`
|
||||
+ `GLOBAL`
|
||||
|
||||
|
||||
+ Response 200
|
||||
|
||||
+ Attributes (array[Promotion])
|
|
@ -1,3 +1,31 @@
|
|||
### GET Users [GET /users{?q,fractFilter,limit,offset}]
|
||||
|
||||
Get single army member information
|
||||
|
||||
+ Parameters
|
||||
+ q: `hardi` (string, optional) - filter string which filters for partial username
|
||||
|
||||
+ fractFilter (enum[string], optional)
|
||||
Field to filter by fraction
|
||||
|
||||
+ Members
|
||||
+ `BLUFOR`
|
||||
+ `OPFOR`
|
||||
+ `GLOBAL`
|
||||
|
||||
+ limit: 20 (number, optional)
|
||||
Maximum number of users to return
|
||||
|
||||
+ offset (number, optional)
|
||||
Offset into result-set (useful for pagination)
|
||||
|
||||
+ Default: 0
|
||||
|
||||
+ Response 200
|
||||
|
||||
+ Attributes (array[User])
|
||||
|
||||
|
||||
### GET User [GET /users/{id}]
|
||||
|
||||
Get single army member information
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
The running express server instance saves entity related files like squad logos and statistic logs on the file system.
|
||||
In the original mean application they are served in the `/resource` path of the application server.
|
||||
|
||||
The following examples show where those files are located, to be accessed on the cloud instance.
|
||||
|
||||
## Images
|
||||
**Decoration Image**
|
||||
|
||||
`https://cc.noarch.de/resource/decoration/{decorationId}.png`
|
||||
|
||||
**Rank Image**
|
||||
|
||||
`https://cc.noarch.de/resource/rank/{rankId}.png`
|
||||
|
||||
**Signature Image**
|
||||
|
||||
`https://cc.noarch.de/resource/signature/{userId}.png`
|
||||
|
||||
**Squad Logo**
|
||||
|
||||
`https://cc.noarch.de/resource/squad/{squadId}.png`
|
||||
|
||||
## Log-Files
|
||||
|
||||
**Sanitized Log File**
|
||||
|
||||
`https://cc.noarch.de/resource/logs/{warId}/clean.log`
|
||||
|
||||
**Original Uploaded Log File**
|
||||
|
||||
`https://cc.noarch.de/resource/logs/{warId}/war.log`
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
# Proposer (object)
|
||||
Representation of an app user who proposed an awarding or a promotion
|
||||
|
||||
## Properties
|
||||
|
||||
+ _id: `593d5e3f72d35225222bcaba` (string, required) - unique id of the app user
|
||||
+ username: `hardiready` (string, required) - username of the app user
|
||||
+ squad: `591470249e9fae286e308e41` (string, required) - squad id associated with the app user
|
|
@ -7,6 +7,7 @@ Awarding associating a decoration to a user
|
|||
+ date: `2017-05-17T19:44:24.926Z` (string, required) - date when the awarding was requested
|
||||
+ decorationId (Decoration, required) - populated decoration object that is given with the awarding
|
||||
+ reason: `war dabei` (string, required) - reason for giving the awarding
|
||||
+ proposer (Proposer, required) - app user who requested this awarding, null if awarding was given directly
|
||||
+ timestamp: `2017-05-17T19:44:28.751Z` (string, required) - creation date
|
||||
+ updatedAt: `"2017-05-17T19:44:28.751Z` (string, required) - version date
|
||||
+ userId: `5918d2ca574b0b1d820a0b24` (string, required) - the unique id of the user who got this awarding
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
# Promotion (object)
|
||||
Representation of a promotion request for a army member
|
||||
|
||||
## Properties
|
||||
+ _id: `5as7d05dcb90ce4da68c4f5f` (string, required) - unique id of the promotion request
|
||||
+ confirmed: 0 (number, required) - number representing status of the promotion (0 - in progress, 1 - approved, 2 - rejected)
|
||||
+ newRankLvl: 14 - new rank level that is requested in this promotion
|
||||
+ oldRankLvl: 10 - old rank level of the user
|
||||
+ proposer (Proposer, required) - app user who requested the promotion
|
||||
+ timestamp: `2018-03-25T18:54:21.609Z` (string, required) - creation timestamp
|
||||
+ updatedAt: `2018-03-25T18:54:21.609Z` (string, required) - version timestamp
|
||||
+ userId (User, required) - populated user instance of user the promotion is requested for
|
||||
+ __v: 0 (number, required) - version number of promotion instance
|
|
@ -1,5 +1,7 @@
|
|||
# Data Structures
|
||||
|
||||
:[Gists](_app-user.apib)
|
||||
|
||||
:[Gists](_army.apib)
|
||||
|
||||
:[Gists](_auth.apib)
|
||||
|
@ -8,6 +10,8 @@
|
|||
|
||||
:[Gists](_decoration.apib)
|
||||
|
||||
:[Gists](_promotion.apib)
|
||||
|
||||
:[Gists](_squad.apib)
|
||||
|
||||
:[Gists](_user.apib)
|
||||
|
|
|
@ -10,6 +10,10 @@ FORMAT: 1A
|
|||
|
||||
:[Gists](base/datetime.apib)
|
||||
|
||||
# Group File Resources
|
||||
|
||||
:[Gists](base/file-resources.apib)
|
||||
|
||||
# Group Access
|
||||
|
||||
:[Gists](auth/signup.apib)
|
||||
|
@ -18,6 +22,10 @@ FORMAT: 1A
|
|||
|
||||
# Group Account
|
||||
|
||||
# Group Army Overview
|
||||
|
||||
:[Gists](army-management/army.apib)
|
||||
|
||||
# Group Awardings
|
||||
|
||||
:[Gists](army-management/awardings.apib)
|
||||
|
@ -30,16 +38,14 @@ FORMAT: 1A
|
|||
|
||||
# Group Logs
|
||||
|
||||
# Group Overview
|
||||
|
||||
:[Gists](overview/army.apib)
|
||||
|
||||
# Group Players
|
||||
|
||||
# Group Ranks
|
||||
|
||||
# Group Requests
|
||||
|
||||
:[Gists](army-management/promotions.apib)
|
||||
|
||||
# Group Squads
|
||||
|
||||
# Group Users
|
||||
|
|
|
@ -32,47 +32,30 @@ awarding.route('/')
|
|||
if (req.query.inProgress) {
|
||||
filter.confirmed = 0;
|
||||
}
|
||||
if (req.query.simple) {
|
||||
AwardingModel.find(filter, {}, {sort: {date: 'desc'}}, (err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
// with return before (or after) the next(err) we prevent that the code continues here after next(err)
|
||||
// has finished. this saves an extra else {..}
|
||||
}
|
||||
// if the collection is empty we do not send empty arrays back.
|
||||
if (items && items.length > 0) {
|
||||
res.locals.items = items;
|
||||
}
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
} else {
|
||||
AwardingModel.find(filter, {}, {sort: {date: 'desc'}})
|
||||
.populate('decorationId').populate('proposer', resultSet)
|
||||
.exec((err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
// with return before (or after) the next(err) we prevent that the code continues here
|
||||
// after next(err) has finished. this saves an extra else {..}
|
||||
}
|
||||
let results = [];
|
||||
if (req.query.fractFilter) {
|
||||
for (let item of items) {
|
||||
if (item.decorationId.fraction === req.query.fractFilter) {
|
||||
results.push(item);
|
||||
}
|
||||
AwardingModel.find(filter, {}, {sort: {date: 'desc'}})
|
||||
.populate('decorationId').populate('proposer', resultSet)
|
||||
.exec((err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
// with return before (or after) the next(err) we prevent that the code continues here
|
||||
// after next(err) has finished. this saves an extra else {..}
|
||||
}
|
||||
let results = [];
|
||||
if (req.query.fractFilter) {
|
||||
for (let item of items) {
|
||||
if (item.decorationId.fraction === req.query.fractFilter) {
|
||||
results.push(item);
|
||||
}
|
||||
res.locals.items = results;
|
||||
} else {
|
||||
res.locals.items = items;
|
||||
}
|
||||
res.locals.items = results;
|
||||
} else {
|
||||
res.locals.items = items;
|
||||
}
|
||||
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
}
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.post(apiAuthenticationMiddleware, checkHl, (req, res, next) => {
|
||||
|
|
|
@ -58,7 +58,7 @@ request.route('/award')
|
|||
request.route('/promotion')
|
||||
|
||||
.get((req, res, next) => {
|
||||
// TODO: add SQL authentication
|
||||
// TODO: add SQL authentication?
|
||||
const squadFilter = req.query.squadId;
|
||||
const fractFilter = req.query.fractFilter;
|
||||
const progressFilter = req.query.inProgress;
|
||||
|
|
Loading…
Reference in New Issue