BokaMera.API.Host

<back to all web services

UpdateUser

Requires Authentication
The following routes are available for this service:
PUT/usersUpdate my informationUpdates the logged in users info both in customer profile and application admin profile if any exists. Users are only allowed to update their own info.
import Foundation
import ServiceStack

// @ApiResponse(Description="Returned if there is a validation error on the input parameters", StatusCode=400)
// @ApiResponse(Description="Returned if the current user is not allowed to perform the action", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
public class UpdateUser : Codable
{
    /**
    * The user id for your profile.
    */
    // @ApiMember(Description="The user id for your profile.")
    public var userId:String?

    public var newEmail:String
    public var userProfile:UpdateCustomerProfile
    public var adminProfile:UpdateAdminProfile
    /**
    * The user realm for identity server.  BookMore = 1, BookMoreAdmin = 2 
    */
    // @ApiMember(Description="The user realm for identity server.  BookMore = 1, BookMoreAdmin = 2 ", IsRequired=true)
    public var realm:KeyCloakRealm

    required public init(){}
}

public class UpdateCustomerProfile : Codable
{
    public var firstname:String
    public var lastname:String
    public var phone:String
    public var email:String

    required public init(){}
}

public class UpdateAdminProfile : Codable
{
    public var firstname:String
    public var lastname:String
    public var phone:String
    public var email:String

    required public init(){}
}

public enum KeyCloakRealm : Int, Codable
{
    case BookMore = 1
    case BookMoreAdmin = 2
    case SuperAdmin = 3
}

public class UpdateUserResponse : Codable
{
    //responseStatus:Object ignored. Type could not be extended in Swift
    /**
    * The user id for your profile.
    */
    // @ApiMember(Description="The user id for your profile.", IsRequired=true)
    public var userId:String?

    public var userProfile:UserProfileResponse
    public var adminProfile:AdminProfile
    public var isSentConfirmationUpdateEmail:Bool?

    required public init(){}
}

public class UserProfileResponse : Codable
{
    public var id:String
    public var firstname:String
    public var lastname:String
    public var phone:String
    public var email:String

    required public init(){}
}

public class AdminProfile : Codable
{
    public var companyId:String
    public var id:String
    public var firstname:String
    public var lastname:String
    public var email:String
    public var workerId:String
    public var phone:String

    required public init(){}
}


Swift UpdateUser DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /users HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"UserId":"00000000-0000-0000-0000-000000000000","NewEmail":"String","UserProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"AdminProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"Realm":"BookMore"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{},"UserId":"00000000-0000-0000-0000-000000000000","UserProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"AdminProfile":{"Firstname":"String","Lastname":"String","Email":"String","WorkerId":"String","Phone":"String"},"IsSentConfirmationUpdateEmail":false}