Shorten User Subscription
curl --request PUT \
--url https://codecombat.com/api/users/{handle}/shorten-subscription \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"ends": "<string>"
}
'import requests
url = "https://codecombat.com/api/users/{handle}/shorten-subscription"
payload = { "ends": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({ends: '<string>'})
};
fetch('https://codecombat.com/api/users/{handle}/shorten-subscription', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://codecombat.com/api/users/{handle}/shorten-subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'ends' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://codecombat.com/api/users/{handle}/shorten-subscription"
payload := strings.NewReader("{\n \"ends\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://codecombat.com/api/users/{handle}/shorten-subscription")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"ends\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://codecombat.com/api/users/{handle}/shorten-subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ends\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"_id": "<string>",
"email": "<string>",
"name": "<string>",
"slug": "<string>",
"role": "<string>",
"stats": {
"gamesCompleted": 123,
"concepts": {},
"playTime": 123
},
"oAuthIdentities": [
{
"provider": "<string>",
"id": "<string>"
}
],
"subscription": {
"ends": "<string>",
"active": true
},
"license": {
"ends": "<string>",
"active": true
}
}Users
Shorten User Subscription
If the user already has a premium access up to a certain time, this shortens/revokes his/her premium access. If the ends is less than or equal to the current time, it revokes the subscription and sets the end date to be the current time, else it just shortens the subscription.
PUT
/
users
/
{handle}
/
shorten-subscription
Shorten User Subscription
curl --request PUT \
--url https://codecombat.com/api/users/{handle}/shorten-subscription \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"ends": "<string>"
}
'import requests
url = "https://codecombat.com/api/users/{handle}/shorten-subscription"
payload = { "ends": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({ends: '<string>'})
};
fetch('https://codecombat.com/api/users/{handle}/shorten-subscription', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://codecombat.com/api/users/{handle}/shorten-subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'ends' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://codecombat.com/api/users/{handle}/shorten-subscription"
payload := strings.NewReader("{\n \"ends\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://codecombat.com/api/users/{handle}/shorten-subscription")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"ends\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://codecombat.com/api/users/{handle}/shorten-subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ends\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"_id": "<string>",
"email": "<string>",
"name": "<string>",
"slug": "<string>",
"role": "<string>",
"stats": {
"gamesCompleted": 123,
"concepts": {},
"playTime": 123
},
"oAuthIdentities": [
{
"provider": "<string>",
"id": "<string>"
}
],
"subscription": {
"ends": "<string>",
"active": true
},
"license": {
"ends": "<string>",
"active": true
}
}url = `https://codecombat.com/api/users/${userID}/shorten-subscription`
json = { ends: new Date().toISOString() }
request.put({ url, json, auth }, (err, res) => {
console.log(res.body.subscription.active) // false
})
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
The document's _id or slug.
Body
application/json
Response
200 - application/json
The affected user
Subset of properties listed here
Usually either 'teacher' or 'student'
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
