### Project Setup and Installation Source: https://docs.junction.com/home/quickstart This snippet shows how to set up your environment, install dependencies using poetry, and start the backend application. Ensure you are using Python 3. For virtual environment users, activate it before proceeding. ```shell touch .env # Note: must use python 3 # For virtualenv users: # virtualenv venv # source venv/bin/activate poetry install # Start the backend app cd backend/python source ./start.sh ``` -------------------------------- ### Clone Quickstart Repository Source: https://docs.junction.com/home/quickstart Clone the Quickstart repository from GitHub to begin the local setup process. This is the first step before configuring your environment variables. ```bash git clone https://github.com/tryVital/quickstart cd quickstart ``` -------------------------------- ### Basic Installation Source: https://docs.junction.com/wearables/sdks/installation Follow these steps to install the SDK. ```APIDOC ## GET /v2/timeseries/{user_id}/calories_basal/grouped ### Description Retrieves grouped basal calorie data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/calories_basal/grouped ## GET /v2/timeseries/{user_id}/distance/grouped ### Description Retrieves grouped distance data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/distance/grouped ## GET /v2/timeseries/{user_id}/floors_climbed/grouped ### Description Retrieves grouped floors climbed data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/floors_climbed/grouped ## GET /v2/timeseries/{user_id}/steps/grouped ### Description Retrieves grouped step data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/steps/grouped ## GET /v2/timeseries/{user_id}/workout_duration/grouped ### Description Retrieves grouped workout duration data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/workout_duration/grouped ## GET /v2/timeseries/{user_id}/wheelchair_push/grouped ### Description Retrieves grouped wheelchair push data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/wheelchair_push/grouped ## GET /v2/timeseries/{user_id}/stand_hour/grouped ### Description Retrieves grouped stand hour data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/stand_hour/grouped ## GET /v2/timeseries/{user_id}/stand_duration/grouped ### Description Retrieves grouped stand duration data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/stand_duration/grouped ## GET /v2/timeseries/{user_id}/fall/grouped ### Description Retrieves grouped fall data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/fall/grouped ## GET /v2/timeseries/{user_id}/workout_distance/grouped ### Description Retrieves grouped workout distance data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/workout_distance/grouped ## GET /v2/timeseries/{user_id}/workout_swimming_stroke/grouped ### Description Retrieves grouped workout swimming stroke data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/workout_swimming_stroke/grouped ## GET /v2/timeseries/{user_id}/sleep_apnea_alert/grouped ### Description Retrieves grouped sleep apnea alert data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/sleep_apnea_alert/grouped ## GET /v2/timeseries/{user_id}/sleep_breathing_disturbance/grouped ### Description Retrieves grouped sleep breathing disturbance data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/sleep_breathing_disturbance/grouped ## GET /v2/timeseries/{user_id}/mindfulness_minutes/grouped ### Description Retrieves grouped mindfulness minutes data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/mindfulness_minutes/grouped ## GET /v2/timeseries/{user_id}/stress_level/grouped ### Description Retrieves grouped stress level data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/stress_level/grouped ## GET /v2/timeseries/{user_id}/uv_exposure/grouped ### Description Retrieves grouped UV exposure data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/uv_exposure/grouped ## GET /v2/timeseries/{user_id}/daylight_exposure/grouped ### Description Retrieves grouped daylight exposure data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/daylight_exposure/grouped ## GET /v2/timeseries/{user_id}/handwashing/grouped ### Description Retrieves grouped handwashing data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/handwashing/grouped ## GET /v2/timeseries/{user_id}/note/grouped ### Description Retrieves grouped note data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/note/grouped ## GET /v2/timeseries/{user_id}/caffeine/grouped ### Description Retrieves grouped caffeine data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/caffeine/grouped ## GET /v2/timeseries/{user_id}/carbohydrates/grouped ### Description Retrieves grouped carbohydrates data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/carbohydrates/grouped ## GET /v2/timeseries/{user_id}/water/grouped ### Description Retrieves grouped water data for a user. ### Method GET ### Endpoint /v2/timeseries/{user_id}/water/grouped ## GET /event-catalog/provider.connection.created ### Description Sent when a user successfully connects a new wearable or health data provider through Vital Link. ### Method GET ### Endpoint /event-catalog/provider.connection.created ## GET /event-catalog/provider.connection.error ### Description Sent when an existing provider connection encounters an authentication error or fails to sync. ### Method GET ### Endpoint /event-catalog/provider.connection.error ``` -------------------------------- ### Link Configuration Example Source: https://docs.junction.com/wearables/connecting-providers/launching_link Configure Link with essential parameters like `open`, `ready`, and `error` handlers. This snippet demonstrates the basic setup for the Link component. ```javascript _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," }) }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " onError" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })] }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " env:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " "sandbox"" })] }), "\\n", _jsx(_components.span, { className: "line", children: _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " };" }) }), "\\n", _jsx(_components.span, { className: "line" }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " const" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " { " }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "open" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ", " }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "ready" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ", " }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "error" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " } " }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: "=" }), _jsx(_components.span, { style: { color: "#8250DF", "--shiki-dark": "#DCDCAA" }, children: " useVitalLink" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "(" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "config" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ");" })] }), "\\n", _jsx(_components.span, { className: "line" }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " const" }), _jsx(_components.span, { style: { color: "#8250DF", "--shiki-dark": "#DCDCAA" }, children: " handleVitalOpen" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: " =" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: " async" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " () " }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "=>" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " {" })] }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#8250DF", "--shiki-dark": "#DCDCAA" }, children: " setLoading" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "(" }), _jsx(_components.span, { style: { color: "#0550AE", "--shiki-dark": "#569CD6" }, children: "true" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ");" })] }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " // TODO: Implement actual logic here" })] }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " }" })] })] } ``` -------------------------------- ### Start Backend Application Source: https://docs.junction.com/home/quickstart Navigate to the Python backend directory and start the backend application using the start script. ```bash # Start the backend app cd backend/python source ./start.sh ``` -------------------------------- ### Go Request Example Source: https://docs.junction.com/api-reference/user/get-users-connected-providers Example of how to call the Get Connected Providers API using Go. ```go package main\n\nimport (\n\t"fmt"\n\t"github.com/junction/sdk/go/junction\n)\n\nfunc main() {\n\tclient := junction.NewClient(\"YOUR_API_KEY\", \"https://api.us.junction.com\")\n\n\tuserId := \"some-user-id\"\n\tresponse, err := client.User.GetConnectedProviders(userId)\n\tif err != nil {\n\t fmt.Printf(\"Error: %v\", err)\n\t return\n\t}\n\tfmt.Printf(\"Response: %+v\", response)\n} ``` -------------------------------- ### Clone Quickstart and Run Locally Source: https://docs.junction.com/home/quickstart Instructions for cloning the Quickstart repository and setting up your local environment. Ensure to configure your API keys in the .env file before building and running the application. ```shellscript # Note: If on Windows, run # git clone -c core.symlinks=true https://github.com/tryVital/quickstart # instead to ensure correct symlink behavior git clone https://github.com/tryVital/quickstart.git # Create .env, then fill # out VITAL_API_KEY, VITAL_REGION (eu, us) and ``` -------------------------------- ### JavaScript: Get Workout Summary Request Source: https://docs.junction.com/api-reference/data/workouts/get-summary Example of constructing a request to get a workout summary. It includes user ID, start date, and end date parameters. ```javascript response: \n}), children: \"err\" }), children: \" := \" }), children: \" c\" }), children: \".\" }), children: \"Workouts\" }), children: \".\" }), children: \"Get\" }), children: \"(\" }), children: \"context\" }), children: \".\" }), children: \"TODO\" }), children: \"(), \" }), children: \"&\" }), children: \"junction\" }), children: \".\" }), children: \"GetWorkoutsRequest\" }), children: \"{\" }), "\n", _jsxs(_components.span, { className: \"line\", children: [_jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#9CDCFE\" }, children: \" UserId\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \": \" }), _jsx(_components.span, { style: { color: \"#0A3069\", --shiki-dark: \"#CE9178\" }, children: \"\\\"\\\"\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \",\" })] }), "\n", _jsxs(_components.span, { className: \"line\", children: [_jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#9CDCFE\" }, children: \" StartDate\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \": \" }), _jsx(_components.span, { style: { color: \"#0A3069\", --shiki-dark: \"#CE9178\" }, children: \"\\\"2022-05-01\\\"\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \",\" })] }), "\n", _jsxs(_components.span, { className: \"line\", children: [_jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#9CDCFE\" }, children: \" EndDate\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \": \" }), _jsx(_components.span, { style: { color: \"#CF222E\", --shiki-dark: \"#D4D4D4\" }, children: \"&\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#9CDCFE\" }, children: \"endDate\" }), _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \",\" })] }), "\n", _jsx(_components.span, { className: \"line\", children: _jsx(_components.span, { style: { color: \"#1F2328\", --shiki-dark: \"#D4D4D4\" }, children: \"})\" })), "\n", _jsxs(_components.span, { className: \"line\", children: [_jsx(_components.span, { style: { color: \"#CF222E\", --shiki-dark: \"#C586C0\" }, children: \"if\" }), _jsx(_components.span, { ``` -------------------------------- ### Get Activity Summary Request Source: https://docs.junction.com/api-reference/data/activity/get-summary Example of how to call the GetActivityRequest with user ID, start date, and end date. ```APIDOC ## GET /activity/summary ### Description Retrieves a summary of user activity within a specified date range. ### Method GET ### Endpoint /activity/summary ### Parameters #### Query Parameters - **userId** (string) - Required - The ID of the user whose activity data is to be retrieved. - **startDate** (string) - Required - The start date for the activity summary (YYYY-MM-DD). - **endDate** (string) - Required - The end date for the activity summary (YYYY-MM-DD). ### Response #### Success Response (200) - **activitySummary** (object) - An object containing the aggregated activity data. - **totalActivities** (integer) - The total number of activities recorded. - **activeDays** (integer) - The number of days with recorded activity. - **averageSessionDuration** (integer) - The average duration of user sessions in seconds. ### Response Example ```json { "activitySummary": { "totalActivities": 150, "activeDays": 25, "averageSessionDuration": 1800 } } ``` ``` -------------------------------- ### JavaScript Example for Get Sleep Summary Source: https://docs.junction.com/api-reference/data/sleep/get-summary This JavaScript snippet shows how to construct a request to get sleep data. It specifies the user ID, start date, and end date for the summary. ```javascript _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "sleep" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#8250DF", "--shiki-dark": "#DCDCAA" }, children: "get" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "({"\n })]\n }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " userId:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " startDate:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-01\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " endDate:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-02\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })] }), "\n", _jsx(_components.span, { className: "line", children: _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "});" }) }), "\n"] }), "\n"] }), _jsx(CodeBlock, { filename: "Java", numberOfLines: "16", language: "java", children: _jsx(_components.pre, { className: "shiki shiki-themes github-light-default dark-plus", style: { backgroundColor: "#ffffff", "--shiki-dark-bg": "#0B0C0E", color: "#1f2328", "--shiki-dark": "#D4D4D4" }, language: "java", children: _jsxs(_components.code, { language: "java", numberOfLines: "16", children: [_jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.Junction;" })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.core.Environment;" })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.resources.sleep.requests.GetSleepRequest;" })] }), "\n", _jsx(_components.span, { className: "line" }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "Junction" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " client" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: " =" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " Junction" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "getEnvironment" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "(" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "Environment" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "production" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ")" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: ";" })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "GetSleepRequest" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " request =" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: " new" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: " GetSleepRequest" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "(" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-01\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-02\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ")" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: ";" })] }), "\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "client" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "sleep" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "get" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "(" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "request" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: ")" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: ";" })] }), "\n"] }) }) }) ] } ``` -------------------------------- ### JavaScript Example for Get Activity Summary Source: https://docs.junction.com/api-reference/data/activity/get-summary This JavaScript snippet demonstrates how to construct a request to get an activity summary. It includes parameters for user ID, start date, and end date. ```javascript import { Junction } from "@junction/api"; import { Environment } from "@junction/api/core"; import { GetActivityRequest } from "@junction/api/resources/activity/requests"; const client = Junction.builder().build(); const request = new GetActivityRequest({ userId: "", startDate: "2022-05-01", endDate: "2022-06-01", }); ``` -------------------------------- ### Go Client Setup and Workout Summary Request Source: https://docs.junction.com/api-reference/data/workouts/get-summary This Go code snippet demonstrates how to import necessary packages and set up a client to fetch workout summaries. It includes options for filtering by date. ```go import ( "context" junction "github.com/junction-api/junction-go" "github.com/junction-api/junction-go/client" "github.com/junction-api/junction-go/option" ) c := client.New( // Use context.Background() or a context with timeout context.Background(), // Use your Junction API key option.WithAPIKey("YOUR_API_KEY"), // Use your desired endpoint option.WithEndpoint("https://api.junction.com/v1"), ) // Example: Fetch workouts for a user within a date range userID := "user123" startDate := "2023-01-01" endDate := "2023-01-31" workouts, err := c.GetWorkoutsSummary(userID, option.WithStartDate(startDate), option.WithEndDate(endDate), ) if err != nil { // Handle error log.Fatalf("Error fetching workout summary: %v", err) } // Process the workouts data for _, workout := range workouts { fmt.Printf("Workout ID: %s, Type: %s\n", workout.ID, workout.Type) } ``` -------------------------------- ### Java Example for Get Meal Summary Source: https://docs.junction.com/api-reference/data/meal/get-summary This Java code demonstrates how to initialize the Junction client and prepare a request for the Get Meal Summary API. It includes necessary imports and client setup. ```java import com.junction.api.Junction; import com.junction.api.core.Environment; import com.junction.api.resources.meal.requests.GetMealRequest; Junction client = Junction.builder() .withEnvironment(Environment.PRODUCTION) .build(); GetMealRequest request = new GetMealRequest( "", "2021-01-01", "2021-01-02" ); client.meal().getSummary(request); ``` -------------------------------- ### Prerequisites Source: https://docs.junction.com/wearables/sdks/installation Before installing the SDK, ensure you have the following prerequisites installed on your system. ```APIDOC ## Prerequisites - **Node.js**: Version 14 or higher - **npm** or **yarn**: Package manager ``` -------------------------------- ### Clone Quickstart Repository Source: https://docs.junction.com/home/quickstart Clone the Quickstart repository. Use the -c core.symlinks=true option on Windows for correct symlink behavior. ```bash # Note: If on Windows, run # git clone -c core.symlinks=true https://github.com/tryVital/quickstart # instead to ensure correct symlink behavior git clone https://github.com/tryVital/quickstart.git ``` -------------------------------- ### JavaScript Example for Get Meal Summary Source: https://docs.junction.com/api-reference/data/meal/get-summary Use this JavaScript snippet to call the Get Meal Summary API. Ensure you provide a valid user ID, start date, and end date. ```javascript _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: "meal" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." }), _jsx(_components.span, { style: { color: "#8250DF", "--shiki-dark": "#DCDCAA" }, children: "get" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "({" })]}), "\n"), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " userId:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })]}), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " startDate:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-01\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })]}), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " endDate:" }), _jsx(_components.span, { style: { color: "#0A3069", "--shiki-dark": "#CE9178" }, children: " \"2021-01-02\"" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "," })]}), "\\n", _jsx(_components.span, { className: "line", children: _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "});" })]) })), _jsx(CodeBlock, { filename: "Java", numberOfLines: "16", language: "java", children: _jsx(_components.pre, { className: "shiki shiki-themes github-light-default dark-plus", style: { backgroundColor: "#ffffff", "--shiki-dark-bg": "#0B0C0E", color: "#1f2328", "--shiki-dark": "#D4D4D4" }, language: "java", children: _jsxs(_components.code, { language: "java", numberOfLines: "16", children: [_jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.Junction;" })]}), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.core.Environment;" })]}), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#569CD6" }, children: "import" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: " com.junction.api.resources.meal.requests.GetMealRequest;" })]}), "\\n", _jsx(_components.span, { className: "line" }), "\\n", _jsxs(_components.span, { className: "line", children: [_jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#4EC9B0" }, children: "Junction" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " client" }), _jsx(_components.span, { style: { color: "#CF222E", "--shiki-dark": "#D4D4D4" }, children: " =" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#9CDCFE" }, children: " Junction" }), _jsx(_components.span, { style: { color: "#1F2328", "--shiki-dark": "#D4D4D4" }, children: "." })]}) ]) }) }) ] ``` -------------------------------- ### Initialize Client with API Key and Environment Source: https://docs.junction.com/api-reference/data/activity/get-summary Demonstrates how to initialize the client with your API key and set the environment. Ensure you replace 'YOUR_API_KEY' with your actual key. ```javascript var data = client.activity().get("\u003cuser_id\u003e", GetActivityRequest.builder().startDate(). ``` -------------------------------- ### Initialize Client with Base URL and Environment Source: https://docs.junction.com/api-reference/user/delete-user Shows how to initialize the client by specifying a custom base URL and environment. This is useful for testing or using specific deployment environments. ```javascript const client = new Client( option.WithBaseURL("junction.Environments.Sandbox") ); ``` -------------------------------- ### Get Sleep Summary (Python) Source: https://docs.junction.com/api-reference/data/sleep/get-summary Example Python code to fetch sleep summary data. Ensure you have the `requests` library installed. This snippet demonstrates how to make a GET request with necessary headers and query parameters. ```python import requests BASE_URL = "https://api.us.junction.com" API_KEY = "" USER_ID = "{user_id}" START_DATE = "{{START_DATE}}" END_DATE = "{{END_DATE}}" headers = { "Accept": "application/json", "x-vital-api-key": API_KEY } params = { "start_date": START_DATE, "end_date": END_DATE } response = requests.get(f"{BASE_URL}/v2/summary/sleep/{USER_ID}", headers=headers, params=params) if response.status_code == 200: print(response.json()) else: print(f"Error: {response.status_code}") ``` -------------------------------- ### Python Request Example Source: https://docs.junction.com/api-reference/lab-testing/get-order This snippet demonstrates how to make a request to the Get Order API using Python. Ensure you have the necessary libraries installed. ```python "use strict";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \ ``` -------------------------------- ### Go Example for getPscAppointment Source: https://docs.junction.com/api-reference/lab-testing/psc-scheduling/get-psc-appointment This snippet shows how to initialize a client and call the getPscAppointment function in Go. It includes necessary imports and client setup. ```go import ( "context" "github.com/junction-api/junction-go" "github.com/junction-api/junction-go/client" "github.com/junction-api/junction-go/option" ) c := client.NewClient( option.WithToken("YOUR_API_TOKEN"), option.WithBaseURL("https://api.example.com") ) resp, err := c.PscScheduling.GetPscAppointment(context.Background(), "12345") if err != nil { panic(err) } fmt.Printf("%+v\n", resp) ``` -------------------------------- ### Installation using npm Source: https://docs.junction.com/wearables/sdks/installation Install the Junction Wearables SDK using npm. ```APIDOC ## Installation ### Using npm ```bash npm install @junction/wearables-sdk ``` ``` -------------------------------- ### Get User with Junction SDK (TypeScript) Source: https://docs.junction.com/api-reference/user/get-user Instantiate the JunctionClient and use it to retrieve user information. This example demonstrates basic usage and requires the SDK to be installed. ```typescript import { JunctionClient, JunctionEnvironment } from "@junction-api/sdk"; const client = new JunctionClient ``` -------------------------------- ### Initialize Client and Get All Providers Source: https://docs.junction.com/api-reference/providers Demonstrates how to initialize a client with API key and base URL, and then retrieve all providers. Includes basic error handling. ```APIDOC ## Initialize Client and Get All Providers ### Description This operation initializes a client for the Junction API, allowing you to authenticate using an API key and specify a custom base URL (e.g., for sandbox environments). It then proceeds to fetch all available providers. Basic error handling is included to check for issues during the fetch operation. ### Method GET (implied by GetAll) ### Endpoint `/providers` (inferred from GetAll) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```go client := client.NewClient( option.WithApiKey("YOUR_API_KEY"), option.WithBaseURL(junction.Environments.Sandbox), ) response, err := client.Providers.GetAll(context.TODO(), nil) ``` ### Response #### Success Response (200) - **response** (ProviderList) - A list of providers. #### Response Example ```json { "providers": [ { "id": "provider-id-1", "name": "Provider One", "description": "Details about Provider One" }, { "id": "provider-id-2", "name": "Provider Two", "description": "Details about Provider Two" } ] } ``` ### Error Handling - **err** (error) - Returns an error if the fetch operation fails. ```