API - lehoffma/memo GitHub Wiki
Methode: POST
Url: /api/login
Body: { 'email': <email> 'password': <password> }
Returns on success: HttpStatusCode 200, Body: { 'id': UserID als int, 'auth_token': Json Web Token/was auch immer wir am Ende benutzen }
Returns on failure: HttpStatusCode 403, Body: { 'id': null }
Methode: POST
Url: /api/logout
Body: { 'auth_token': Json Web Token/was auch immer wir am Ende benutzen }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: GET
Url: /api/event
Body: { 'id': event-ID (optional) 'searchTerm': Sucheingabe (optional, default='') 'type': Merch/Tour/Party enum (optional, default=ALL) }
Returns on success: HttpStatusCode 200, Body: { 'events': Array mit allen Events, die auf den searchTerm matchen }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: POST
Url: /api/event
Body: { 'event': Event-Objekt als JSON }
Returns on success: HttpStatusCode 201, Body: { 'id': Die ID des neu angelegten Event-Objekts }
Returns on failure: HttpStatusCode 404, Body: { }
example body (tour & party):
{
"event": {
"id": 0,
"title": "BER",
"date": 1470096000000,
"description": "ushfgifg",
"expectedReadRole": 1,
"expectedCheckInRole": 1,
"expectedWriteRole": 5,
"route": [ 0, 1 ],
"imagePath": "https://placekitten.com/504/505",
"capacity": 50,
"priceMember": 10,
"price": 10,
"vehicle": "Bus",
"miles": 300,
"emptySeats": 46,
"participants": [
{
"id": 0,
"isDriver": true,
"hasPaid": false
},
{
"id": 1,
"isDriver": true,
"hasPaid": false
},
{
"id": 2,
"isDriver": true,
"hasPaid": false
},
{
"id": 3,
"isDriver": true,
"hasPaid": false
}
],
"meetingPoint": 0,
"destination": 1,
"type" : 1
}
}
example body (merch):
{
"event": {
"id": 0,
"title": "Polo-Shirt",
"date": 1483225200000,
"description": "Cooles Polo-Shirt für den echten Fan!",
"expectedRole": "Mitglied",
"route": [-1,-1],
"imagePath": "https://placekitten.com/505/1000",
"capacity": 20,
"priceMember": 19,
"price": 19,
"type": 3,
"stock": [
{
"size": "XS",
"color": {
"name": "Weiss",
"hex": "#ffffff"
},
"amount": 2
},
{
"size": "S",
"color": {
"name": "Weiss",
"hex": "#ffffff"
},
"amount": 1
},
{
"size": "M",
"color": {
"name": "Weiss",
"hex": "#ffffff"
},
"amount": 5
},
{
"size": "L",
"color": {
"name": "Weiss",
"hex": "#ffffff"
},
"amount": 2
},
{
"size": "XL",
"color": {
"name": "Weiss",
"hex": "#ffffff"
},
"amount": 4
},
{
"size": "XS",
"color": {
"name": "Grün",
"hex": "#00ff00"
},
"amount": 2
},
{
"size": "S",
"color": {
"name": "Grün",
"hex": "#00ff00"
},
"amount": 1
},
{
"size": "M",
"color": {
"name": "Grün",
"hex": "#00ff00"
},
"amount": 5
},
{
"size": "L",
"color": {
"name": "Grün",
"hex": "#00ff00"
},
"amount": 2
},
{
"size": "XL",
"color": {
"name": "Grün",
"hex": "#00ff00"
},
"amount": 4
},
{
"size": "XS",
"color": {
"name": "Blau",
"hex": "#0000ff"
},
"amount": 2
},
{
"size": "S",
"color": {
"name": "Blau",
"hex": "#0000ff"
},
"amount": 1
},
{
"size": "M",
"color": {
"name": "Blau",
"hex": "#0000ff"
},
"amount": 5
},
{
"size": "L",
"color": {
"name": "Blau",
"hex": "#0000ff"
},
"amount": 2
},
{
"size": "XL",
"color": {
"name": "Blau",
"hex": "#0000ff"
},
"amount": 4
}
],
"colors": [
{
"name": "Weiss",
"hex": "#ffffff"
},
{
"name": "Grün",
"hex": "#00ff00"
},
{
"name": "Blau",
"hex": "#0000ff"
}
],
"material": "Baumwolle",
"_sizeTable": {
"XS": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}],
"S": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}],
"M": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}],
"L": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}],
"XL": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}],
"XXL": [{
"name": "Brustumfang",
"min": 78,
"max": 81
},{
"name": "Tailenumfang",
"min": 82,
"max": 85
},{
"name": "Hüftumfang",
"min": 86,
"max": 89
},{
"name": "Modelllänge",
"min": 90,
"max": 93
},{
"name": "Schulterbreite",
"min": 94,
"max": 97
}]
},
"meetingPoint": 0,
"sizes": [
"XS",
"S",
"M",
"L",
"XL",
"XXL"
]
}
}
Methode: PUT
Url: /api/event
Body: { 'event': Event-Objekt als JSON }
Returns on success: HttpStatusCode 201, Body: { 'id': Die ID des geupdateten Event-Objekts }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: DELETE
Url: /api/event
Body: { 'id': Die ID des Event-Objekts }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: GET
Url: /api/user
Params 'id': user-ID (optional) 'searchTerm': Sucheingabe (optional, default='')
Returns on success: HttpStatusCode 200, Body: { 'users': Array mit allen Usern, die auf den searchTerm matchen }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: POST
Url: /api/user
Body: { 'user': User-Objekt (JSON) }
Returns on success: HttpStatusCode 201, Body: { 'id': Die ID des neu angelegten Users }
Returns on failure: HttpStatusCode 400, Body: {Email must not be empty **(aber es gibt doch wohl noch andere fehler als das?)** }
Returns on failure: HttpStatusCode 400, Body: {Email already taken }
Example body:
{
"user": {
"id": 0,
"firstName": "Nils",
"surname": "Pöcking",
"gender": "male",
"birthDate": 776642400000,
"telephone": "+(49) 176 / 84 80 62 85",
"clubRole": "4",
"joinDate": 1407794400000,
"addresses": [
0,
1
],
"permissions": {
"funds": 2,
"party": 2,
"user": 2,
"merch": 2,
"tour": 2,
"stock": 2,
"account": 3
},
"miles": 1337,
"email": "[email protected]",
"passwordHash": "tohuuihgrohujt0uiwe89jg7",
"isWoelfeClubMember": false,
"hasSeasonTicket": false,
"isStudent": true,
"hasDebitAuth": true,
"imagePath": "https://placekitten.com/504/504"
},
"profilePicture": null,
"paymentInfo": null
}
Methode: PUT
Url: /api/user
Body: { 'user': User-Objekt (JSON) }
Returns on success: HttpStatusCode 200, Body: { 'id': Die ID des geupdateten Users }
Returns on failure: HttpStatusCode 400, Body: {Bad Data }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: DELETE
Url: /api/user
Params: { 'id': Die ID des zu löschenden Users }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: GET
Url: /api/entry
Body: { 'eventId': ID des Events, welches dem Posten zugewiesen ist (optional) 'eventType': Merch/Tour/Party enum (optional) 'entryId': ID des Entries (optional) 'minDate': Startdatum (optional) 'maxDate': Enddatum (optional) }
Returns on success: HttpStatusCode 200, Body: { 'entries': Array mit allen Entry-Objekten, die auf die übergebenen parameter matchen }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: POST
Url: /api/entry
Body: { 'entry': Entry-Objekt (JSON), 'eventId': ID des Events, dem das Entry Objekt zugewiesen wird 'eventType': Merch/Tour/Party enum }
Returns on success: HttpStatusCode 200, Body: { 'id': Die ID des neu angelegten oder geupdateten Entry-Objektes }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: DELETE
Url: /api/entry
Body: { 'id': Die ID des zu löschenden Entries }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: GET
Url: /api/participants
Body: { 'eventId': ID des Events, dem die Participant-Liste zugewiesen ist 'eventType': Merch/Tour/Party enum }
Returns on success: HttpStatusCode 200, Body: { 'participants': Array mit allen Participant-Objekten, die auf die übergebenen parameter matchen }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: POST
Url: /api/participants
Body: { 'eventId': ID des Events, dem das Participant Objekt zugewiesen wird 'eventType': Merch/Tour/Party enum, 'participant': das Participant Object }
Returns on success: `HttpStatusCode 200, Body: {
}`
Returns on failure: HttpStatusCode 404, Body: { }
Methode: PUT
Url: /api/participants
Body: { 'eventId': ID des Events, dem das Participant Objekt zugewiesen wird 'eventType': Merch/Tour/Party enum, 'participant': das Participant Object }
Returns on success: `HttpStatusCode 200, Body: {
}`
Returns on failure: HttpStatusCode 404, Body: { }
Methode: DELETE
Url: /api/participants
Body: { 'eventId': ID des Events, dem das Participant Objekt zugewiesen wird 'eventType': Merch/Tour/Party enum, 'participantId': Die ID des zu löschenden Participants }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 404, Body: { }
Methode: GET
Url: /api/address
Params 'id': Address-ID (optional) 'searchTerm': Sucheingabe (optional, default='')
Returns on success: HttpStatusCode 200, Body: { 'Address': Array mit allen Usern, die auf den searchTerm matchen }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: POST
Url: /api/address
Body: { 'Address': Address-Objekt (JSON) }
Returns on success: HttpStatusCode 201, Body: { 'id': Die ID der neu angelegten Adresse }
Returns on failure: HttpStatusCode 400, Body: {Email must not be empty **(aber es gibt doch wohl noch andere fehler als das?)** }
Returns on failure: HttpStatusCode 400, Body: {Email already taken }
Example body:
{
}
Methode: PUT
Url: /api/address
Body: { 'Address': Address-Objekt (JSON) }
Returns on success: HttpStatusCode 200, Body: { 'id': Die ID der geupdateten Adresse }
Returns on failure: HttpStatusCode 400, Body: {Bad Data }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: DELETE
Url: /api/address
Params: { 'id': Die ID der zu löschenden Adresse }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: GET
Url: /api/stock
Params 'id': Stock-ID (optional) 'eventID': Event-ID (optional) 'searchTerm': Sucheingabe (optional, default='')
Returns on success: HttpStatusCode 200, Body: { 'stock': Array mit allem stock, das auf den searchTerm matcht }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: POST
Url: /api/stock
Body: { 'stock': stock-Objekt (JSON) }
Returns on success: HttpStatusCode 201, Body: { 'id': Die ID des neu angelegten Stocks }
Returns on failure: HttpStatusCode 400, Body: {Email must not be empty **(aber es gibt doch wohl noch andere fehler als das?)** }
Returns on failure: HttpStatusCode 400, Body: {Email already taken }
Example body:
{
}
Methode: PUT
Url: /api/stock
Body: { 'stock': User-Objekt (JSON) }
Returns on success: HttpStatusCode 200, Body: { 'id': Die ID des geupdateten Stocks }
Returns on failure: HttpStatusCode 400, Body: {Bad Data }
Returns on failure: HttpStatusCode 404, Body: {Not Found }
Methode: DELETE
Url: /api/stock
Params: { 'id': Die ID des zu löschenden Stocks }
Returns on success: HttpStatusCode 200, Body: { }
Returns on failure: HttpStatusCode 400, Body: {Bad ID Value }
Returns on failure: HttpStatusCode 404, Body: {Not Found }